【问题标题】:Load multiple files using HTML5 and PHP使用 HTML5 和 PHP 加载多个文件
【发布时间】:2011-04-28 05:24:28
【问题描述】:

我正在尝试使用 HTML5 加载多个文件。 这是我在某个网站上找到的代码。 在 PHP 代码中,它不会将其识别为数组。

我做错了吗?有人可以告诉我一个可行的解决方案吗?

谢谢。

index.html

<form action='save.php' method='post' enctype='multipart/form-data'>
<input name="uploads" type="file" multiple="multiple" />
<input type='submit' value="Upload File">
</form>

保存.php

function GetFiles() {
        $files = array();
        $fdata = $_FILES["uploads"];
        if (is_array($fdata["name"])) {//This is the problem
                for ($i = 0; $i < count($fdata['name']); ++$i) {
                        $files[] = array(
                            'name' => $fdata['name'][$i],
                            'tmp_name' => $fdata['tmp_name'][$i],
                        );
                }
        } else {
                $files[] = $fdata;
        }

        foreach ($files as $file) {
                // uploaded location of file is $file['tmp_name']
                // original filename of file is $file['file']
        }
}

【问题讨论】:

  • 下面的答案已经正确解决了这个问题,这是一个包含完整工作示例的页面,可能会对偶然发现此页面的其他人有所帮助:tiffanybbrown.com/2011/03/29/…

标签: php file html input


【解决方案1】:

数组形式的变量必须用[] 命名,否则PHP 不会将其视为数组。所以:

<form action='save.php' method='post' enctype='multipart/form-data'> 
<input name="uploads[]" type="file" multiple="multiple" /> 
<input type='submit' value="Upload File"> 
</form> 

应该这样做。

【讨论】:

    【解决方案2】:

    您需要制作某种名称的数组:

    <input name="uploads[]" type="file" multiple="multiple" />
    

    就像以前使用复选框时一样。

    【讨论】:

      【解决方案3】:

      我知道这是一个旧线程,但我使用这个小脚本将(对我来说)令人困惑的 $_FILES 数组布局转换为更易读的形式。 Name_input 是您在 HTML 中为 Input 对象指定的任何名称。

      for($i=0; $i<count($_FILES['name_input']['name']); $i++) {
          $betterfiles[] = array(
              "name" => $_FILES['name_input']['name'][$i],
              "type" => $_FILES['name_input']['type'][$i],
              "tmp_name" => $_FILES['name_input']['tmp_name'][$i],
              "error" => $_FILES['name_input']['error'][$i],
              "size" => $_FILES['name_input']['size'][$i]
          );
      }
      

      【讨论】:

        猜你喜欢
        • 2012-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-01
        • 1970-01-01
        相关资源
        最近更新 更多