我正在使用FormData在我的grails项目中上传多个文件。文件需要通过Ajax上传。我使用以下代码进行ajax上传。但是在控制器中,我将params作为[object FileList]。如何从此对象获取文件。有没有办法将此对象更改为multipart?
jQuery('#file-save').click(function() {
if (jQuery('#form input[type="file"]')) {
var form = jQuery("#form").find('input[type="file"]');
var picData = new FormData();
picData.append('userFiles', form.get(0).files);
picData.append('userId', '$usrId');
jQuery.ajax({
url: '/file/upload',
type: 'post',
dataType:'json',
data: picData,
enctype: "multipart/form-data",
contentType: false,
processData: false,
success: function(data) {
console.log("success");
}
});
}
});

def upload(){
def userId = params.userId
def inputFile = params.userFiles
println(inputFile)
inputFile.each{i,j->
println(i)
println(j)
}
}
当我调试时,我得到params.userFiles:" [object FileList]"。任何见解都将不胜感激。
答案 0 :(得分:1)
您很可能需要遍历文件客户端,为每个文件添加相同的密钥
var picData = new FormData();
// loop through form.get(0).files
picData.append('userFiles', file);
// end loop
picData.append('userId', '$usrId');