我已经使用FormData()来上传多个文件。在浏览器控制台中,显示了文件列表,但在 Controller 内部,该列表以字符串格式显示为“[对象文件],[对象文件],[对象文件]”。如何解析其中的值?
我的JavaScript代码是:
var form = jQuery("#upload-form").find('input[type="file"]');
var picData = new FormData();
var fl = form.get(0).files.length;
var files = [];
for (var i = 0; i < fl; i++) {
files.push(form.get(0).files[i]);
console.log(files); //The list files is shown
}
picData.append("filesList[]",files);
jQuery.ajax({
url: 'upload/fileSave',
type: 'post',
dataType:'json',
data:picData,
enctype:"multipart/form-data",
contentType:false,
processData:false,
success: function(data) {
}
});
我做了JSON.parse(params.filesList []),但它只输出“对象文件”字符串。在发送给 Controller 之前,应该在javascript中做点什么吗?
最佳答案
通常在 Controller 内部,您可以从请求中获取文件,如下所示:
File file = request?.getFile('fileName')
但是在您的代码中,有多个文件,因此您可以迭代每个文件
File file0 = request?.getFile('filesList[0]')
File file1 = request?.getFile('filesList[1]')
关于ajax - 在grails Controller 中解析ajax多个文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43466284/