【问题标题】:PHP File Upload. var_dump returns empty stringPHP 文件上传。 var_dump 返回空字符串
【发布时间】:2013-01-02 05:38:44
【问题描述】:

我正在尝试使用 php 创建文件上传。但是$_FILES['photo']['name'] 什么也没返回。然后我用谷歌搜索了很多关于var_dump 方法的信息。当我运行它时。它返回以下数组。

array (size=5)
  'name' => string '' (length=0)
  'type' => string '' (length=0)
  'tmp_name' => string '' (length=0)
  'error' => int 4
  'size' => int 0

name、type 和 tmp_name 为空。

这是完整的代码。 (PHP)

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

     var_dump($_FILES['photo']);
}

HTML

<form class="bs-docs-example" action="upload.php" method="post" enctype="multipart/form-data">
        <fieldset>
            <legend>File Upload</legend>

            <label><input type="file" name="photo" size="25" /></label>
            <label><input type="file" name="photo" size="25" /></label>
            <label><input type="file" name="photo" size="25" /></label>

            <label><button type="submit" name="add_video" value="Submit" class="btn">Submit</button></label>

        </fieldset>
</form>

任何建议。提前致谢。

【问题讨论】:

  • 我认为这可能是因为您有多个同名的表单元素而不是数组。
  • 将所有name="photo" 更改为name="photo[]" 看看会发生什么。
  • 可能是因为最后一个具有重复名称的表单元素“覆盖”了第一个和第二个。

标签: php file file-upload upload var-dump


【解决方案1】:

当您有多个具有相同name 的表单元素时,它们将相互覆盖。 PHP 只尊重最后一个具有该名称的输入,它可能是空白的,并忽略您之前填写的那个。

您可以查看PHP manual on multiple file uploads,但结果是您需要在输入名称的末尾加上[],如果您希望PHP“看到”所有这些并为您将它们组织成一个数组.否则,只有一个输入,或者为每个输入选择不同的名称。

【讨论】:

    【解决方案2】:
            <label><input type="file" name="photo" size="25" /></label>
            <label><input type="file" name="photo" size="25" /></label>
            <label><input type="file" name="photo" size="25" /></label>
    

    三个同名元素。这大概就是为什么

    【讨论】:

    • 谢谢!这就是问题所在,有时我觉得自己像个傻瓜。
    • 我确定你不是,每个人有时都会忽略一些很小的事情
    【解决方案3】:

    试试

     var_dump($_POST);
    

    查看您是否有任何返回的帖子,但是有 3 个同名元素是一个问题。

    <label><input type="file" name="photo1" size="25" /></label>
    <label><input type="file" name="photo2" size="25" /></label>
    <label><input type="file" name="photo3" size="25" /></label>
    

    【讨论】:

    • 谢谢!每个元素都使用相同的名称是问题所在!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多