从网上摘的ajax上传代码,上传文件无返回。直接上全部代码:
<body>
<form id="testUpFile" enctype="multipart/form-data">
<input type="file" name="testfile"><br>
<input type="button" value="提交" id="sbmt">
</form>
</body>
<script type="text/javascript">
$(document).on("click","#sbmt",function(){
$.ajax({
url:'<%=request.getContextPath()%>/testfile',
type:'post',
data:new FormData($("#testUpFile")[0]),
processData:false,
contentType:false,
dataType:'json',
success:function(dts){
alert(dts)
}
})
})
</script>
返回数据如果只是一个字符串就会json解析不出来。看起来像是无返回。修改后
<body>
<form id="testUpFile" enctype="multipart/form-data">
<input type="file" name="testfile"><br>
<input type="button" value="提交" id="sbmt">
</form>
</body>
<script type="text/javascript">
$(document).on("click","#sbmt",function(){
$.ajax({
url:'<%=request.getContextPath()%>/testfile',
type:'post',
data:new FormData($("#testUpFile")[0]),
processData:false,
contentType:false,
success:function(dts){
alert(dts)
}
})
})
</script>
只要删除dataType:'json',就可以了。
后台代码:
/**
* 测试文件上传
*/
@RequestMapping(value="/testfile",method=RequestMethod.POST,produces = "text/html; charset=UTF-8")
@ResponseBody
public String fileUpload(@RequestParam("testfile") MultipartFile file){
String name=file.getName();
System.out.println(name);
return "上传完成";
}