2015-01-12 48 views
0

我是新来的PHP。我试图上传一个文件到我的本地服务器,但它一直不成功。PHP上传文件不成功

我所有的文件都在/ var/www/html/ 但是我在html文件夹中创建了一个名为uploads的文件夹,我将其权限更改为777(我平均搜索的内容是最适合我的需求的)

这是我的代码: 的index.html

<!DOCTYPE html> 
<html> 
<body> 
<form enctype="multipart/form-data" action="upload.php" method="POST"> 
<input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 
Choose a file to upload: <input name="uploadedfile" type="file" /><br /> 
<input type="submit" value="Upload File" /> 
</form> 
</body> 
</html> 

upload.php的

<?php 
$target_dir = "uploads/"; 
$target_file = $target_dir . basename($_FILES['fileToUpload']['name']); 
echo "Target File: " . $target_file . "<br />"; 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
    echo "The file ". basename($_FILES['uploadedfile']['name']). " has been uploaded"; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
} 
?> 

帮助,这将非常感激。由于

+8

线索的价值:看看你输入名字另外两个在'$ _FILES'数组中。仔细看看那些人。你会找到你自己的答案,并且会执行你的第一个调试操作。 ;-) –

+0

撇在一边:很少有任何理由想要'777' – CD001

+0

@ CD001可能认为如果文件夹被设置为755,并且不起作用,那么777“必须”工作。 –

回答

0

输入文件是

<input name="uploadedfile" type="file" />

所以更改$_FILES['fileToUpload']['name']$_FILES['uploadedfile']['name']

$_FILES['uploadedfile']['name']必须Name属性文件领域的

+0

回答问题!我很感激 –

0

试试这个:

的index.html

<!DOCTYPE html> 
<html> 
<body> 
<form enctype="multipart/form-data" action="upload.php" method="POST"> 
Choose a file to upload: <input name="uploadedfile" type="file" /><br /> 
<input type="submit" value="Upload File" /> 
</form> 
</body> 
</html> 

upload.php的

if(isset($_FILES["uploadedfile"]["type"]) && ($_FILES["uploadedfile"]["size"] < 5000000)){ 
     $sourcePath = $_FILES['uploadedfile']['tmp_name']; 
     $file = $_FILES['uploadedfile']['name']; 
     $targetPath = "/uploads/".$file; 
     if(move_uploaded_file($sourcePath,$targetPath)){ 
     echo "The file: ".$_FILES['uploadedfile']['name']." has been uploaded"; 
    }else{ 
     echo "Looks like it failed."; 
    } 
}else{ 
    echo "You forgot to select a file, or the file size is too large."; 
} 

那么这样做是检查文件是否存在,并检查如果它小于5MB。如果是这样,它会转到上传部分。

+0

感谢您的回复,但它似乎不起作用。无论代码如何,这只是每次都会失败 –

+0

你在运行什么样的服务器? @ luna-games –

+0

@ jasson-basset感谢您的回复,我正在运行本地apache服务器 –

0

您没有设置变量

$target_path 

你的意思,但不使用

$target_file 

代替。

+0

感谢您的回复!有一点令人尴尬的是,在那里。不过,我仍然收到相同的不成功的上传 –

+0

你错了。 OP在'$ _FILES ['uploadedfile'] ['name']内使用错误的输入字段名称' 请参阅我的回答 – Umair