Javascript post错误要求多部分文件[]参数不存在
有人知道我为什么会出现上述错误吗?我不明白为什么?请参阅下面我的代码,并建议在哪里可以修复此错误。目的是将多个文件上载到一个位置。它过去只适用于单个文件,但是看起来formdata或ajax请求只用于接受一个文件,而不是多个文件。我不是用PHP做这件事的,只是用javascript/java。请帮忙Javascript post错误要求多部分文件[]参数不存在,javascript,java,arrays,ajax,jquery-file-upload,Javascript,Java,Arrays,Ajax,Jquery File Upload,有人知道我为什么会出现上述错误吗?我不明白为什么?请参阅下面我的代码,并建议在哪里可以修复此错误。目的是将多个文件上载到一个位置。它过去只适用于单个文件,但是看起来formdata或ajax请求只用于接受一个文件,而不是多个文件。我不是用PHP做这件事的,只是用javascript/java。请帮忙 function makeProgress(number){ var url = getRelativeURL("web/fileUpload");
function makeProgress(number){
var url = getRelativeURL("web/fileUpload");
var formData = new FormData();
formData.append('number', number);
fls = document.getElementById("attachmentFileUploadInput").files; //length of files...
console.log(fls);
for(j=0;j<fls.length;j++){
formData.append('files[]', fls[j]); //note files[] not files
}
//formData.append('file', $('input[type=file]')[0].files[0]);
console.log("form data " + formData);
$.ajax({
url : url,
data : formData,
processData : false,
contentType : false,
type : 'POST',
success : function(data) {
FileUploadVisible(true);
$('#attachmentModal').modal('hide')
$(':input','#attachmentModal').val("");
$("#pbarmain").hide();
$("#pbar").hide();
$("#actionPlanDiv").hide();
setObjectEnabled('#Upload',false);
},
error : function(err) {
FileUploadErrorVisible(true);
}
});
}
@Bean(name = "multipartResolver")
public CommonsMultipartResolver commonsMultipartResolver(){
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
commonsMultipartResolver.setDefaultEncoding("utf-8");
commonsMultipartResolver.setMaxUploadSize(5000000); // 5000000 -> 5MB
return commonsMultipartResolver;
你必须使用
@RequestMapping(method = RequestMethod.POST, headers = ("content-
type=multipart/*"), produces = "application/json", consumes = "file/*")
public String uploadFile(@RequestParam("number") String number, @RequestParam("files") MultipartFile files) {
并将contentType:'多部分/表单数据使用到javascript代码中
url : url,
data : formData,
processData : false,
contentType: 'multipart/form-data',
type : 'POST',
success : function(data) {
我不熟悉AJAX或Java HTTP集成中的文件上载,但只要看一下错误,它就建议您应该使用一个MultipartFile数组作为参数,可能来自commonmultipartresolver?错误发生在哪里?错误来自spring日志,当我使用Tomcat server在本地运行它时,当我在本地执行代码时,我能够选择多个文件,然后当我单击upload按钮时,它打印控制台日志:console.log(“form data”+formData);ajax请求之后立即出现错误。@RequestMapping(value={”/fileUpload“},method=RequestMethod.POST,headers=(“content type=multipart/*”),products=“application/json”,consumes=“file/*”@ResponseBody public String uploadFile(@RequestParam(“number”)String number,@RequestParam(“files”)MultipartFile[]文件,MultipartTtpServletRequest req,HttpServletResponse res){这不起作用,我添加了contenttype也无法解析多部分servlet请求;嵌套异常为org.apache.commons.fileupload.FileUploadException:请求被拒绝,因为找不到多部分边界。请尝试以下代码`headers:{'Content-Type':'multipart/form data'}`进入ajaxSame错误:2017-04-13 19:24:03.752调试o.s.web.servlet.DispatcherServlet.976-无法完成请求org.springframework.web.multipart.MultipartException:无法解析多部分servlet请求;嵌套异常为org.apache.commons.fileupload.FileUploadException:请求被拒绝,因为没有创建多部分边界可在org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:163)$.ajax({url:url,data:formData,processData:false,headers:{'Content-Type':'multipart/formData'},//contentType:'multipart/form data',type:'POST',
url : url,
data : formData,
processData : false,
contentType: 'multipart/form-data',
type : 'POST',
success : function(data) {