【发布时间】:2022-06-10 20:35:05
【问题描述】:
问题
$_FILES['file'] 数组已设置,但每当我尝试使用它时它都是空的。
我尝试了什么
- 谷歌搜索
- 在 php.ini 中将文件上传设置为 On(Xampp 和项目文件根目录)
- 一次上传一个文件(只是尝试解决问题
- 调试整个代码一个月试图解决这个问题
我所知道的事实
- onSubmit 的路径是正确的
- 表单中输入的名字和$_FILES['file']后面的名字完全一样
- 表单具有所有必需的属性
- 输入中包含 type="file" 和多个
我的表单代码(HTML)和文件引擎(PHP)
<html>
<form method="POST" action="../php/post.php" enctype="multipart/form-data">
<h3>Title</h3>
<input type="hidden" name="case" value=1>
<input type="title" name="pname">
<h3>Message</h3>
<input type="message" name="pmsg">
<h3>Images</h3>
<input type="file" name="pimg[]" multiple>
<input class="submit" type="submit" value="Upload">
</form>
</html>
PHP
<?php
if (!empty($_FILES['file']['pimg'])){
$noFiles = 1;
echo "Files found...\n";
} else {
$noFiles = 0;
echo "Files not found...\n";
echo (!empty($_FILES['file']['pimg']));
echo $_FILES['file']['pimg'][0];
}
?>
输出
如果判断数组为空,最后回显会报错
【问题讨论】:
-
什么是
$_FILES['file']['pimg']?不是$_FILES['pimg']吗? -
尽量具体描述所发生的事情。您说“最后一个回显导致错误”,但没有向我们展示错误的含义。即使您不知道它的含义,向我们展示它也可以让我们向您解释它。您还可以添加
var_dump($_FILES);的输出,这可能会揭示问题。 -
而这一切都可以用一行代码解决:
print_r($_FILES); -
我试过 print_r();它什么也不返回。错误只是说 ['pimg'] 不存在
-
“我试过 print_r();它什么也没返回。”
print_r($_FILES);总是会显示一些东西。