2012-03-31 144 views
5

我只是做了一个文件上传代码,我想知道为什么文件上传不起作用。我改变了上传目录到0777这是我上传的HTML代码:PHP:文件上传move_uploaded_file()不起作用

<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"; 
    } 
} 
?> 

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

+0

请定义“不工作”。你有没有收到任何错误信息?你有错误报告吗? – deceze 2012-03-31 01:51:04

+0

你的意思是将你的路径用作服务器上的根路径,还是那些应该与你的web根目录相关? – jprofitt 2012-03-31 01:51:37

+0

你应该知道,有人可以上传.htaccess文件,并用这个 – 2012-03-31 01:54:18

回答

11

尝试

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

谢谢!这工作完美。 :D – SnarkyDTheman 2012-03-31 01:56:34

+0

您可以阅读关于相对和绝对路径。 – segrived 2012-03-31 01:57:38

+6

@SnarkyDTheman如果这个答案解决了你的问题,你应该把它标记为正确的... – 2013-03-09 10:13:53

0

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

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

尝试

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

代替。