表单的 php 文件是:
<?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 60000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("http://example.me/imgs/examples" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"http://example.me/imgs/examples" . $_FILES["file"]["name"]);
echo "Stored in: " . "http://example.me/imgs/examples" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
这很直截了当,对吧?表单的 html 是:
<form action="img_upload.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<input type="submit" name="submit" value="Submit"/>
</form>
也足够简单;正确的?提交图像后,我被重定向到 img_upload.php 文件,并显示以下文本:
Upload: example.jpg
Type: image/jpeg
Size: 39.1943359375 Kb
Temp file: C:\WINDOWS\Temp\php66.tmp
Stored in: http://example.me/imgs/examplesexample.jpg
当我尝试执行这样的简单任务并且没有错误但也没有结果时,我会像疯了一样感到沮丧。我已经尝试在 php 脚本中添加像 imgs/examples/ 这样的“/”,唯一的区别是提交后的以下行是:
Stored in: http://example.me/imgs/examples/example.jpg
关于我在这里缺少的任何想法。我有许多其他 php 脚本/mysql 表正在使用和上传图像,但对于这个简单的任务什么都没有。我在 localhost 上的 apache 服务器上使用 php 5 进行测试。提前感谢所有人的任何帮助。