之前我是通过表单上传的,现在有需求,通过ajax无刷新提交。
首先在form表单
上面加上`enctype="multipart/form-data"
<form id="form_table" enctype="multipart/form-data" >
<input type="file" name="filename" />
<br/>
<input type="text" name="account" value="1888" class="account">
</form>
然后js中写上:
var fd = new FormData($("#form_table")[0]);
$.ajax({
url: "/upload/batchImport",
type: "POST",
data: fd,
processData: false,
contentType: false,
success : function(data) {
alert(data.flag);
},
error : function(data) {
alert(data.flag);
}
});
后台接收:
@RequestMapping(value = "/upload/batchImport",method = RequestMethod.POST)
@ResponseBody
public Object batchImport(@RequestParam("filename") MultipartFile file, String account) throws IOException {
Map map = new HashMap();
int flag = 0;
//判断文件是否为空
if(file==null){
map.put("flag",flag);
map.put("msg","文件为空!");
return map;
}
//获取文件名
String fileName=file.getOriginalFilename();
//批量导入
String message1 = uploadService.batchImport(account,file,false);
map.put("flag",1);
map.put("msg","成功插入"+message1+"条数据!");
return map;
}
上面的filename就是前台中的name值,注意
返回了json数据,实现ajax无刷新上传文件。
网友评论