多文件上传程序Jquery多部分解析器不工作
我试图上传一个文件到我的前端系统,作为测试,将其保存到我的C驱动器的本地文件夹中。我有ajax函数和controller方法,但似乎无法找出spring日志中错误消息的含义 Ajax功能:多文件上传程序Jquery多部分解析器不工作,jquery,ajax,spring,jquery-file-upload,multifile-uploader,Jquery,Ajax,Spring,Jquery File Upload,Multifile Uploader,我试图上传一个文件到我的前端系统,作为测试,将其保存到我的C驱动器的本地文件夹中。我有ajax函数和controller方法,但似乎无法找出spring日志中错误消息的含义 Ajax功能: function makeProgress(){ var url = getRelativeURL("web/fileUpload"); var formData = new FormData(); formD
function makeProgress(){
var url = getRelativeURL("web/fileUpload");
var formData = new FormData();
formData.append('file', $('input[type=file]')[0].files[0]);
console.log("form data " + formData);
$.ajax({
url : url,
data : formData,
processData : false,
contentType : "multipart/form-data",
type : 'POST',
success : function(data) {
alert(data);
},
error : function(err) {
alert(err);
}
});
}
服务器端控制器:
private static String UPLOADED_FOLDER = "C://temp//";
@RequestMapping(value = { "/fileUpload" }, method = RequestMethod.POST, consumes ={"multipart/form-data"})
@ResponseBody
public String uploadFile(@RequestParam("file") MultipartFile file, HttpServletRequest req, HttpServletResponse res)
{
try {
byte[] bytes = file.getBytes();
Path path = Paths.get(UPLOADED_FOLDER + file.getOriginalFilename());
Files.write(path, bytes);
logger.info("You have successfully uploaded '" + file.getOriginalFilename() + "'");
return("File Uploaded");
} catch (Exception e) {
res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
logger.error("Failed to upload file '" + file.getOriginalFilename() + "'", e);
return("File Not Uploaded");
}
}
错误日志:
2017-04-10 10:30:09.758 DEBUG o.s.web.servlet.DispatcherServlet.976 - Could not complete request
java.lang.IllegalArgumentException: Expected MultipartHttpServletRequest: is a MultipartResolver configured?
at org.springframework.util.Assert.notNull(Assert.java:112) ~[spring-core-3.2.8.RELEASE.jar:3.2.8.RELEASE]
有人能看到我缺少什么吗?请显示您的配置。@Bean(name=“multipartResolver”)public commons多部分解析器commons多部分解析器commonmultipartresolver(){commonmultipartresolver commonmultipartresolver=new commonmultipartresolver();commonmultipartresolver.setDefaultEncoding(“utf-8”);commonMultipartResolver.setMaxUploadSize(50000000);return commonMultipartResolver;}}2017-04-10 11:07:56.021 DEBUG o.s.web.servlet.DispatcherServlet.976-无法完成请求org.springframework.web.multipart.MultipartException:无法解析多部分servlet请求;嵌套的异常是org.apache.commons.fileupload.FileUploadException:请求被拒绝,因为在org.springframework.web.multipart.commons.commonmultipartresolver.parseRequest(commonmultipartresolver.java:163)~[spring-web-3.2.8.RELEASE.jar:3.2.8.RELEASE]@alfcope是否对配置提供了上述帮助?您的请求似乎有误。应ajax请求,将
contentType
设置为false。看看这个答案