5

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

6 回答 6

6

您在哪一行收到该警告?如果它是带有 的$_POST['picture'],那么它是合乎逻辑的,你不会在 中找到上传的文件数据$_POST,它在$_FILES

于 2009-08-28T11:03:05.447 回答
1
echo "Picture=" . $_POST['picture'] . "<br/>";

POST 变量

$_POST['picture']

不存在,所以是的,它会给出一个未定义的错误。

于 2009-08-28T11:08:35.670 回答
0

我无法评论,所以我会在这里说。

伙计,这个回声将打印文件名!有用!他说有效。

有趣的是,上传文件的基本名称会打印出来,所以我相信 PHP 实际上已经看到了文件 [...]

一个很好的提示:尝试并var_dump$_FILES此处添加它的内容。您可能会因为文件太大或其他一些有用的信息而出错。

于 2009-08-28T11:12:40.187 回答
0

您使用的是什么级别或错误报告? error_reporting(E_ALL)将打开完整报告并可能会给您提示。如前所述,$_FILES使用var_dump()或打印print_r()文件以查看文件信息。

于 2009-08-28T11:17:18.787 回答
0

大声笑,以前的海报说重新启动他们的服务器修复了它。我做了同样的事情,并且由于某种原因它有效。我没有进行任何代码更改,IIS 重置也不起作用。它需要重新启动计算机本身。大约 2 小时完全丢失。

于 2012-02-26T23:34:01.053 回答
-2

尝试添加

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

<input type = "file" id="picture" name="picture"/>
于 2009-09-13T13:21:42.597 回答