我有这样的表格:
<form action="image_upload.php" method="post" enctype="multipart/form-data">
Image 1: <input type="file" name="event_image" />
<input type="submit" />
</form>
和这个php代码(image_upload.php):
print_r($_FILES);
if ((($_FILES["event_image"]["type"] == "image/jpeg")
|| ($_FILES["event_image"]["type"] == "image/pjpeg"))
&& ($_FILES["event_image"]["size"] < 200000))
{
if ($_FILES["event_image"]["error"] > 0)
{
echo "Return Code: " . $_FILES["event_image"]["error"] . "<br />";
}
else
{
if (file_exists("/images/events/" . $_FILES["event_image"]["name"]))
{
echo $_FILES["event_image"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["event_image"]["tmp_name"],
"/images/events/" . $_FILES["event_image"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["event_image"]["name"];
}
}
}
else
{
echo "Invalid file";
}
我不知道这出错的地方因为我之前使用过相同的代码。
我收到以下错误但是......
数组([event_image] =&gt;数组([name] =&gt; my_image.jpg [type] =&gt; image / jpeg [tmp_name] =&gt; / private / var / tmp / phpvIYmAZ [error] =&gt ; 0 [size] =&gt; 48512))
警告:move_uploaded_file(../../../ images / events / my_image.jpg):无法打开流:第25行/path/event_upload.php中的权限被拒绝
警告:move_uploaded_file():无法在/path/event_upload.php中将'/ private / var / tmp / phpvIYmAZ'移动到'../../../images/events/my_image.jpg' 25存储在:upload / my_image.jpg
注意:未定义的索引:第57行的/path/event_upload.php中的event_image
答案 0 :(得分:1)
$_FILES
数组在每个属性键下以数字方式编制索引,以处理多个上传。
您必须使用$_FILES["event_image"]["type"][0]
,$_FILES["event_image"]["name"][0]
等对零索引进行硬编码。您必须更改使用$_FILES
的每一行而不使用数字索引。
注意:编辑原始答案以修复数组中数字索引的正确位置。
答案 1 :(得分:1)
好的......这似乎是我本地计算机上的文件夹权限问题...只需要chmod该文件夹。
感谢所有的建议。
答案 2 :(得分:0)
只是让你知道$ _FILES对象的样子,就在第8行之前,插入这个echo "<PRE>" . print_r ($_FILES, true) . "</PRE>";