0

我正在尝试使用 php 创建文件上传。但$_FILES['photo']['name']什么也不返回。然后我google了很多,找出var_dump方法。当我运行它时。它返回以下数组。

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

名称、类型和 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>

有什么建议么。提前致谢。

4

3 回答 3

4

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

您可以查看有关多个文件上传的 PHP 手册,但结果是,[]如果您希望 PHP “看到”所有文件并将它们组织成一个数组,则需要在输入名称的末尾添加。否则,只有一个输入,或者只为每个输入选择不同的名称。

于 2013-01-02T05:44:08.087 回答
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>

三个具有相同名称的元素。这大概就是为什么

于 2013-01-02T05:40:58.397 回答
1

尝试

 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>
于 2013-01-02T05:43:11.003 回答