bool(false)正在上载文件


bool(false) Uploading a file

我在一个简单的php脚本中遇到了问题,在这个脚本中我可以将文件上传到某个文件夹。我已经尝试了多种方法来做到这一点,但仍然没有成功。

我的代码中的任何错误或关于如何更正问题的建议都将被妥善处理。

主要Php代码:

<p>Browse For a File on your computer to upload it!</p>
<form enctype="multipart/form-data" action="upload_photos.php" method="POST">
Choose Photo:
<input name="userfile" type="file" /><br />
<input type="submit" value="Upload Photo" />

<?PHP      

if ($userfile_size>250000)
    {$msg=$msg."Your uploaded file size is more than 250KB so please reduce the file size  and then upload.<BR>";
$file_upload="false";} 
else{
if (!($userfile_type<>"image/jpeg" OR $userfile_type<>"image/tiff" OR     $userfile_type<>"image/png"))
    {$msg=$msg."Your uploaded file must be of JPG, PNG, or tiff. Other file types are not     allowed<BR>";  
$file_upload="false";}
}
  ?>
</form>
</label>
</form>

点击时调用的Php代码(upload_photos.Php)

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

我不明白为什么我的最终结果[点击"上传文件"按钮]只包括以下结果:

"上传文件时出错,请重试!bool(false)"

还有一件事:我还尝试使用$target_path和chmod的完整计算机文件夹路径。

有人看到我做错了什么吗?

您有<input name="userfile",但在脚本中使用$_FILES['uploadedfile']-使用其中一个。

除此之外,请确保chmod工作正常并且文件夹可写。

bool(false)var_dump($test);的输出,表示move_uploaded_file返回false。

作为一个基本的调试步骤,您应该尝试var_dump($_FILES),以确保您正在访问该数组的正确元素(我可以从您的代码中看出您没有,索引将是<input type="file"/>元素的name属性)。

你的逻辑至少还有一个严重的缺陷。。。上传表单中的PHP代码没有任何意义。该PHP代码块将在用户上传文件之前在服务器端执行。它不可能工作。您正在检查的两个变量$userfile_size$userfile_type在任何地方都没有定义。

在我的情况下,我忘记创建一个要上传的文件夹。因此,请检查指定的上传路径是否可用。