当我使用dropzone.js
上传很多文件时,问题就出现了。
我需要向POST
请求添加更多参数,我已经阅读了dropzonejs.com
上的文档和github.com
上的wiki,参数已添加到请求中。
问题是文件的默认参数是files[0]
,files[1]
...(我把paramName
选项设置为files
),但我无法用java spring mvc代码接收files
参数。
这是我的spring mvc控制器代码:
@RequestMapping("/upload")
public Map<String,Object> method(CaseInfo info,HttpServletRequest request,@RequestParam("files[]")MultipartFile[] files){
...
}
这是我的js核心代码:
this.on("sending", function(file, xhr, formData){
console.log("formData ->", formData);
var frm = $('#form');
var data = frm.serializeArray();
console.log('data ->', data);
for (var obj in data) {
formData.append(obj.name, obj.value);
}
});
控制器就是不能接收文件参数,别人的名字是undefined
,
编辑日期:
我把for-in改成了below,undefined
的问题就解决了。但是我不知道为什么...有人知道吗?
for (var i = data.length - 1; i >= 0; i--) {
var obj = data[i];
formData.append(obj.name,obj.value);
}
2条答案
按热度按时间mklgxw1f1#
我通过覆盖js源代码解决了这个问题。
zbq4xfa02#
理解这是一个老问题,但我已经成功地将“sending”选项更改为“sendingmultiple”,然后传递一个函数,该函数仅返回“files”以匹配spring控制器签名:
日本
java