2009-06-09 206 views
0

我想用PHP将文件上传到服务器。我无法让它工作。下面是代码:在php中上传文件的问题

if(isset($_POST['Upload'])) 
{ 

    //size condition 
    if ($_FILES['uploaded']['size'] > 350000) 
    { 
     $mesg = "Your file is too large.<br>"; 
     exit; 
    } 

    if(move_uploaded_file($_FILES['uploaded']['tmp_name'], "upload/" . $_FILES['uploaded']['name'])) 
    { 
     $mesg = "The file ". basename($_FILES['uploaded']['name']). " has been uploaded";  
    } 
    else 
    {  
     $mesg = "Sorry, there was a problem uploading your file."; 
    }  
} 
else 
{ 
    $mesg = "Select a File to upload."; 
} 

这里是我使用的文件提交表单的代码:将上传

<? 
echo $mesg; 
?> 
<br /><br /> 
<form enctype="multipart/form-data" action="" method="POST"> 
Please choose a file: <input name="uploaded" type="file" /><br /> 
<input type="submit" value="Upload" /> 
</form> 

回答

3

您的提交按钮没有一个名字:

<input type="submit" value="Upload" /> 

你检查$_POST['Upload'],所以你可能想:

<input type="submit" value="Upload" name="Upload" /> 
6

您需要enctype="multipart/form-data"<form>标签或里面什么都没有。

欲了解更多信息,请查看PHP manual

另外,我不确定您是否只是在测试功能,但是您应该谨慎将上载的文件放到网络可访问的文件夹中,尤其是使用其原始名称。这为有人上传恶意脚本并可能接管您的服务器留下了一扇敞开的大门。

+2

+1优秀的安全保护点 – 2009-06-09 00:09:55

+0

这是一个密码保护区,只有2或3人可以访问所以我不担心恶意脚本。 – 2009-06-09 00:11:55

+0

我添加了enctype =“multipart/form-data”,但我仍然遇到同样的问题 – 2009-06-09 00:13:43

1

您的形式更改为

<form action="" method="POST" enctype="multipart/form-data">