当我选择单个文件或多个文件时,结果是相同的。我希望这段代码能够上传多个文件。但阵列是空的。我已经审核了其他人的多篇帖子,这些问题的答案似乎并不适用于此。如果我删除所有表单输入,除了隐藏的输入名称' action'上传工作正常。
以下是relvant HTML表单:
<form action="bulletin.php" method="post" enctype="multipart/form-data">
<input class="form-control" id="message_subject" name="message_subject" type="text"/>
<textarea class="form-control" cols="40" id="message_body" name="message_body" rows="10"></textarea>
<input type="file" id="file" name="file[]" multiple accept="image/*"/>
<input type="hidden" name="action" value="submit_new">
<button class="btn btn-primary " name="submit" type="submit">Submit</button>
</form>
这是PHP:
print_r($_FILES);
if(isset($_POST['action'])){
// Count total files
$countfiles = count($_FILES['file']['name']);
// Looping all files
for($i=0;$i<$countfiles;$i++){
$filename = date('Y-m-d-H-i-s') . $_FILES['file']['name'][$i];
// Upload file
move_uploaded_file($_FILES['file']['tmp_name'][$i],'user-images/'.$filename);
}
}
这是输出:
Array()
注意:未定义的索引:第66行/var/www/html/secure/bulletin.php中的文件
当表单中包含其他输入时,为什么数组为空?
答案 0 :(得分:0)
所以,在我的情况下,这个php页面上有多个表单,但除非if语句为true,否则不显示。我偶然发现网上的一篇文章,建议页面上的每个表单都应包含enctype =“multipart / form-data”。所以我经历并将其添加到php文件中的每个表单,这解决了这个神秘的问题。不确定为什么不相关的表单标签会导致这种情况。