【问题标题】:bool(false) Uploading a filebool(false) 上传文件
【发布时间】:2012-03-18 06:15:31
【问题描述】:

我在使用一个简单的 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 的完整计算机文件夹路径。

有人看到我做错了吗?

【问题讨论】:

  • 谁拥有uploads 目录?如果不是apache(或服务器运行的任何用户),这可能不起作用。

标签: php apache file upload


【解决方案1】:

您有&lt;input name="userfile",但随后在您的脚本中使用$_FILES['uploadedfile'] - 使用其中一个。

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

【讨论】:

  • 乔,非常感谢你。我一直在寻找这个问题的许多答案。我非常感谢您的帮助,问题已经解决。你是救生员。
【解决方案2】:

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

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

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

【讨论】:

  • 是的,我忘了把这两个变量去掉,这是我现在正在玩的东西(文件限制等)。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 2011-12-03
    相关资源
    最近更新 更多