ajax上传文件可以使用 formData封装各种参数 ,formData 既可以封装二进制的文件,也可以封装key,val 等json参数,如代码:
js代码
var formData = new FormData();
formData.append("file", document.getElementById("excel_file").files[0]);//file文件
formData.append("param", JSON.stringify(
{
streetId:vm.keyword.streetId,
communityId:vm.keyword.communityId,
}
));//对象参数
//formData.append("xx", vm.keyword.streetId);//ep:单个参数这样封装
ajax代码
$.ajax({
url: '../../eldercare/uploader/import/oldman',
type: "POST",
data:formData,
/**
*必须false才会自动加上正确的Content-Type
*/
contentType: false,
/**
* 必须false才会避开jQuery对 formdata 的默认处理
* XMLHttpRequest会对 formdata 进行正确的处理
*/
processData: false,
......
});
java代码
@RequestMapping(method = RequestMethod.POST, value = "/import/oldman")
public R importExcel(@RequestParam(value = "file")MultipartFile file,OldmanParam param) throws IOException {
//业务代码略
}