2017-09-03 71 views
0

我有多种形式动态生成。 我需要为多个文件构建formData以及一些额外的隐藏输入。append formData多个文件和其他输入 - php处理

这是我到目前为止已经试过:

$(document).on('click', '.upload-btn', function(e){ 
    e.preventDefault(); 

    var formData = new FormData($(this).parents('form')[0]); 

    $.ajax({ 
     method: "POST", 
     url: "upload.php", 
     dataType: 'text', 
     cache: false, 
     contentType: false, 
     processData: false, 
     data: formData, 

     beforeSend: function(){ 
     ... 
     }, 
     success: function(){ 
     ... 
     } 
    }); 
}); 

奇怪的是,这个工程不知何故,并且这些文件确实会上传到服务器,我可以对临时文件,但执行各种操作。 .. 这些文件从来不是$ _POST数组的一部分,如果我var_dump $ _POST文件不在那里。

有没有更好的方法来建立formData?当我测试isset($ _ POST ['file []'])时,我在PHP端丢失了一些东西)

任何帮助,非常感谢。

+0

您可能会在表单标记中缺少enctype =“multipart/form-data” –

+0

它在那里相信我。否则,它只会上传第一张图片。事情的作品,但我不知道如何发布文件。 – cnapsys

回答

0

使用php的文件数组。的print_r($ _ FILES); 通过执行上述打印,您将可以访问从表单发送的每个文件。这包括密钥,tmp_name等

+0

将无法​​测试约2小时,但我会回到你身边...... – cnapsys

+0

没关系......我是个白痴。这些文件确实发布得很好。问题是我正在用isset($ _ POST ['file []'])进行测试,如果没有真正上传文件,它总是被设置,但也是空的。叹息 – cnapsys

+0

我遇到的另一个问题是每次上传后我都没有重置文件字段,所以以前的文件一直在上传,并搞乱了我的测试。现在一切都很好。 thx每个人试图帮助 – cnapsys