检查formdata对象中是否已存在文件名不起作用

时间:2015-12-15 08:35:19

标签: jquery ajax jquery-file-upload form-data

我有多个输入文件字段和其他输入表单字段。我使用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对象添加一个文件

0 个答案:

没有答案