上传时$ _FILES为空

时间:2009-08-28 10:55:02

标签: php file-upload undefined

尝试访问$_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>

6 个答案:

答案 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)会启用完整报告,并可能会给您一个提示。 如前所述,使用$_FILESvar_dump()打印print_r()以查看您文件的信息。

答案 4 :(得分:0)

lol,之前的一张海报说重启他们的服务器修复了它。我做了同样的事情,并且由于某种原因它起作用了。我没有更改代码,IIS重置也没有。它需要重新启动计算机本身。大概2小时左右完全失去了。

答案 5 :(得分:-2)

尝试添加

<input type="hidden" name="MAX_FILE_SIZE" value="30000" />

之前

<input type = "file" id="picture" name="picture"/>