【问题标题】:append formData multiple files and other inputs - php processing追加formData多个文件和其他输入 - php处理
【发布时间】:2017-09-03 17:12:53
【问题描述】:

我有多个动态生成的表单。 我需要为多个文件以及一些额外的隐藏输入构建 formData。

这是我迄今为止尝试过的:

$(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(){
        ...
        }
    });
});

奇怪的是,这以某种方式起作用,并且文件确实被上传到服务器,我可以对临时文件执行各种操作,但是...... 如果我 var_dump $_POST 文件不在其中,则文件永远不会成为 $_POST 数组的一部分。

有没有更好的方法来构建 formData?当我测试 isset($_POST['file[]'])

非常感谢任何帮助。

【问题讨论】:

  • 您的表单标签中可能缺少 enctype="multipart/form-data"
  • 它就在那里,相信我。否则,它只会上传第一张图片。这东西有效,但我不知道文件是如何发布的。

标签: php jquery ajax post


【解决方案1】:

使用 php 的 files 数组。 print_r($_FILES); 完成上述打印后,您将能够访问从表单发送的每个文件。这包括键、tmp_name 等

【讨论】:

  • 没关系...我是个白痴。文件确实发布得很好。问题是我正在使用 isset($_POST['file[]']) 进行测试,它始终是设置的,但如果没有实际上传文件,它也是空的。叹息
  • 我遇到的另一个问题是我没有在每次上传后重置文件字段,因此之前的文件不断上传并弄乱了我的测试。现在一切都很好。感谢大家的帮助
猜你喜欢
  • 2020-12-23
  • 1970-01-01
  • 2016-11-28
  • 2012-02-19
  • 2018-12-19
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多