我有多个输入文件字段和其他输入表单字段。我使用ajax进行文件上传和表单提交。我的jquery代码是这样的。
$.fn.serializefiles = function() {
var obj = $(this);
var form_data = new FormData(this[0]);
//appending all files to form_data
$.each($(obj).find('.file'), function(i, tag) {
//here I need to check if files are same,if same files are there,only upload one file
$.each($(tag)[0].files, function(i, file) {
if((file.length>0)&&(!in_array(file.name,form_data)))
form_data.append(tag.name, file);
});
});
//appending all input fields to form_data
var params = $(obj).serializeArray();
//I need to add input fields which are not in form_data.This works fine
$.each(params, function (i, val) {
if(val.name!='file')
{
//console.log(val.name+'<br/>');
form_data.append(val.name, val.value);
}
});
return form_data;
};
最初我将所有文件添加到formdata.Here我需要附加不在formdata对象中的非空文件。
同样在第二部分中,我将表单的所有输入字段添加到formdata对象。这里我需要追加非文件类型的输入字段,因为我在前一个代码块中添加了文件字段。第二个块工作正常。 如果文件输入具有相同的文件名
,我需要允许只向formdata对象添加一个文件