尝试访问$_FILES
数组时,PHP会返回错误
“未定义索引:图片”。
在我的php.ini
文件中,File Uploads
已开启,任何用户都可以在/tmp
目录中书写。在HTML表单中,enctype设置为"multipart/form-data"
。有趣的是,上传文件的基本名称打印,所以我相信PHP实际上已经看到了该文件,但上传它有一些问题。
有人可以就此问题的潜在解决方案提供建议吗?顺便说一句,我使用的是PHP5。
PHP文件中的代码段
echo "Picture=" . $_POST['picture'] . "<br/>";
$uploadedPic = $_FILES['picture']['tmp_name'];
HTML表单
<form action="PHPFile.php" method="post" enctype="multipart/form-data">
<p> Picture </p>
<input type = "file" id="picture" name="picture"/>
</form>
答案 0 :(得分:6)
你在哪条线路上发出警告?如果它是具有$_POST['picture']
的那个,那么它是合乎逻辑的,您将找不到$_POST
中的上传文件数据,它位于$_FILES
答案 1 :(得分:1)
echo "Picture=" . $_POST['picture'] . "<br/>";
POST变量
$_POST['picture']
不存在,所以是的,它会给出一个未定义的错误。
答案 2 :(得分:0)
我无法评论,所以我会在这里说。
MAN,这个echo会打印文件名!有用!他说它有效。
有趣的是,上传文件的基本名称打印出来,所以我相信PHP实际上已经看到了文件[...]
一个好的提示:尝试var_dump
$_FILES
并在此处添加内容。您可能有错误,因为文件太大或其他一些有用的信息。
答案 3 :(得分:0)
您使用的是什么级别或错误报告?
error_reporting(E_ALL)
会启用完整报告,并可能会给您一个提示。
如前所述,使用$_FILES
或var_dump()
打印print_r()
以查看您文件的信息。
答案 4 :(得分:0)
答案 5 :(得分:-2)
尝试添加
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
之前
<input type = "file" id="picture" name="picture"/>