我正在尝试使用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
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>
任何建议。在此先感谢。
答案 0 :(得分:4)
当您有多个具有相同name
的表单元素时,它们将相互覆盖。 PHP仅尊重具有该名称的最后一个输入,该输入可能是空白的,并且忽略了您填写的早期输入。
您可以查看PHP manual on multiple file uploads,但结果是如果您希望PHP“看到”所有这些并将其组织到输入名称的末尾,则需要[]
一个阵列给你。否则,只有一个输入,或者只为每个输入选择不同的名称。
答案 1 :(得分: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>
三个同名的元素。那可能就是为什么
答案 2 :(得分: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>