我正在尝试调试HTTP3.5.1的一个问题,我根本不能通过WordPress上传媒体;媒体上传器只是简单地说"HTTP error“,然后失败了。为了诊断到底发生了什么,我决定写一个非常基本的w3schools文件上传器,看看幕后有没有什么奇怪的事情发生。但由于某些原因,$_FILE
结构根本不包含任何信息,甚至在最基本的示例中也是如此:
file.php:
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
upload.php:
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_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 "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>
在我尝试过的每个浏览器中,对于我尝试过的每个文件,这只是输出:
Upload:
Type:
Size: 0 kB
Stored in:
而打印$_FILES
则显示它只是一个空数组。
我在共享主机(lunarpages)上使用PHP-5
,但php.ini
文件打开了file_uploads
,而且我尝试的文件大小与upload_max_filesize
相去甚远。我已经准备好把我的笔记本电脑扔到墙上,所以任何帮助都能帮我省下几千美元。
发布于 2013-06-14 05:42:34
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
<?php
phpinfo();
?>
</body>
</html>
这对我来说很有效,$_FILES不是空的,使用的是常见的Debian安装PHP5.2;尝试将您的文件和目录的权限调整为777
发布于 2013-07-10 06:14:25
我曾经在一个共享主机上遇到过类似的问题。原来我没有设置临时目录,因此没有上传任何内容。请与您的主机确认您的php.ini设置正确,存在用于上载的临时目录,并且您对其具有写入权限。
发布于 2013-07-19 13:57:15
$target="Your Path";
if(move_uploaded_file($_FILES['file']['tmp_name'], $target))
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
else
{
echo "Unable to move temp file to target.";
}
https://stackoverflow.com/questions/17097349
复制相似问题