Java 前端使用Ajax通過FormData傳遞文件和表單數據到後臺

<form id="testform" method="post" >
		<input type="text" id="name" name="name" />	
		<input type="text" name="age" />
		<input type="text" name="hobby" />
		<input type="file" id="image" name="image" />
		<input id="yxrq" name="birthday" class="easyui-datebox" data-options="editable:false,width:200" />
	</form>
	<button id="tijiao" onclick="tijiao()">提交</button>

1,當僅僅想上傳文件到後臺

function tijiao(){
		var file = $("#image")[0].files[0];
	    //打印file 爲對象
	    console.log(file);
	    var formObj = new FormData();
	    formObj.set('image', file);
	    $.ajax({
	        url:'test/test3',
	        data:formObj,
	        type: 'POST',
	        dataType:'json',
	        processData:false,
	        contentType:false,
	        success:function(data){
				alert(data.Msg);
			}
	    });

}   

@RequestMapping("/test3")
	public Map<String,Object> test3( @RequestParam("image") MultipartFile uploadFile)

2.上傳表單數據和文件

var uploadFile = new FormData($("#testform")[0]);
		console.log(uploadFile);
			$.ajax({
				url:"test/test3",
				type:"post",
				data:uploadFile,
				cache: false, 
				dataType:'json',
				contentType: false, //不設置內容類型
				processData: false, //不處理數據
				success:function(data){
					alert(data.Msg);
				}		
			});

@RequestMapping("/test3")
	public Map<String,Object> test3(Test test3, @RequestParam("image") MultipartFile uploadFile)//Test爲實體類

3.上傳多個表單數據,那麼以json形式上傳。

function tijiao(){
	var file = $("#image")[0].files[0];
    //打印file 爲對象
    console.log(file);
    var formObj = new FormData();
    formObj.set('image', file);
    var formStr = JSON.stringify($('#testform').serializeJSON());
    formObj.set('test3', formStr);
    
		console.log(formObj);
			$.ajax({
				url:"test/test3",
				type:"post",
				data:formObj,
				cache: false, 
				dataType:'json',
				contentType: false, //不設置內容類型
				processData: false, //不處理數據
				success:function(data){
					alert(data.Msg);
				}		
			});
} 

 @RequestMapping("/test3")
	public Map<String,Object> test3(String test3, @RequestParam("image") MultipartFile uploadFile) 

當input是easyUI的easyui-filebox 文件對象數據 用var file = $("#image")[0].files[0]得不到,

用name屬性得到  var file = $("input[name='zp']")[0].files[0];

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章