我正在尝试用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
的表单元素时,它们将相互覆盖。PHP只考虑使用该名称的最后一个输入,该名称可能是空白的,而忽略了您之前填写的名称
您可以查看关于多个文件上传的PHP手册,但结果是,如果您希望PHP"看到"所有文件并将它们组织成一个数组,则需要在输入名称的末尾有[]
。否则,只有一个输入,或者只为每个输入选择不同的名称。
<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>
三个同名元素。这可能就是
尝试
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>