我已经玩了一段时间了,但是根本无法将此文件上传到服务器。
有人有什么想法吗?
<?php
if ($_POST["file"]){
$allowedExts = array("mp3", "txt");
$extension = end(explode(".", $_FILES["file"]["name"]));
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("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
?>
答案 0 :(得分:0)
确保您的表单包含enctype ...
<form action=".." method=".." enctype="multipart/form-data">
.
.
</form>
希望这有帮助!
答案 1 :(得分:-1)
您应该检查move_uploaded_file
的返回值,因为如果因任何原因无法移动文件,它将返回FALSE。如果您打开了警告,那么PHP将发出警告,为您提供有关失败原因的更多信息。您可以使用脚本顶部的以下代码打开警告:
error_reporting(E_WARNING);
ini_set('display_errors', '1');
您的上传目录是否可写?如果它不可写,那么显然move_uploaded_file
会失败。
编辑:
另一位用户指出,if ($_POST["file"])
行必须为if ($_FILES["file"])
。这可能就是错误。