PHP:文件上传move_uploaded_file()无法正常工作

5

我刚刚编写了一个文件上传代码,但是发现上传不起作用。我将上传目录更改为0777。以下是我的上传HTML代码:

<form action="upload_file.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 代码:

<?php
if ($_FILES["file"]["error"] > 0){
echo "Error Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Uploaded file: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kilobytes<br />";

if (file_exists("/files/".$_FILES["file"]["name"]))
  {
  echo $_FILES["file"]["name"] . " already exists. No joke-- this error is almost <i><b>impossible</b></i> to get. Try again, I bet 1 million dollars it won't ever happen again.";
  }
else
  {
  move_uploaded_file($_FILES["file"]["tmp_name"],"/filebro/".$_FILES["file"]["name"]);
  echo "Done";
  }
}
?>

那么,问题可能是什么呢?

请定义“不工作”。您是否收到任何错误消息?您是否开启了错误报告? - deceze
你的路径是要作为服务器上的实际根路径使用,还是应该相对于你的网站根目录? - jprofitt
你应该意识到,有人可能会上传.htaccess文件,并对此进行许多有趣的操作。 - Lawrence Cherone
我已经开启了错误报告,但是没有任何反应。没有错误信息。 - SnarkyDTheman
2个回答

11

请尝试

move_uploaded_file($_FILES["file"]["tmp_name"],"filebro/".$_FILES["file"]["name"]);

0

你的

if (file_exists("/files/".$_FILES["file"]["name"]))

将始终返回false。该文件以其临时名称保存。

尝试

if (is_uploaded_file($_FILES["file"]["tmp_name"]))

instead.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接