【问题标题】:Multiple file uploader only sends one file多文件上传器只发送一个文件
【发布时间】:2012-12-10 01:02:27
【问题描述】:

我有一个多文件输入,我可以选择多个文件,但是当我在表单操作页面上 var_dump 文件变量时,只有一个文件。

<input id="image" type="file" name="images" multiple="multiple">

这里是转储var_dump($_FILES);

array(1) { ["images"]=> array(5) { ["name"]=> string(12) "IMG_4511.JPG" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(26) "/private/var/tmp/php8g7CV3" ["error"]=> int(0) ["size"]=> int(730250) } }

这是开始的表单标签:

<form enctype="multipart/form-data" method="POST" action="http://localhost.com/item/update" accept-charset="UTF-8">

这里有什么我遗漏的吗?

【问题讨论】:

    标签: php forms file-upload input


    【解决方案1】:
    <input id="image" type="file" name="images[]" multiple="multiple">
    

    应该有效

    【讨论】:

    • 啊,好吧,我认为我不需要添加 []。即使它只是 var_dump 中的一个文件,它仍然是一个数组。但是是的,添加 [] 显示了额外的图像。干杯
    • 没有 [],它只是使它成为一个被传递的变量。当您添加 [] 并将其发布到 php 时,表示该字段不止一个。
    【解决方案2】:

    如果您接受多个文件,请确保您的输入 name 是一个数组:

    单个上传:
    &lt;input name="productImage" accept="image/*" type="file" /&gt;

    多次上传:
    &lt;input name="productImage[]" accept="image/*" type="file" /&gt;
    &lt;input name="productImage[]" accept="image/*" type="file" /&gt;
    ... --------------------------------------^ [] 表示这是一个数组并允许您可以为同一个名称提交多个值。

    然后您会发现$_FILES 的多个值,而不是仅上传的最后一个文件(因为每个文件基本上都覆盖了当前的最后一个文件)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-18
      • 1970-01-01
      • 2018-03-28
      • 1970-01-01
      • 2014-01-02
      • 2018-10-27
      • 1970-01-01
      • 2019-01-11
      相关资源
      最近更新 更多