我遇到一个简单的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>
点击(upload_photos.php)
时调用的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的完整计算机文件夹路径。
有人看到我做错了吗?
答案 0 :(得分:2)
您有<input name="userfile"
但在脚本中使用$_FILES['uploadedfile']
- 使用其中一个。
除此之外,请确保chmod
有效且文件夹可写。
答案 1 :(得分:1)
bool(false)
是var_dump($test);
的输出,表示move_uploaded_file
返回false。
作为一个基本的调试步骤,你应该尝试var_dump($_FILES)
以确保你正在访问该数组的正确元素(我可以从你的代码中看出你不是,索引将是{{ 1}} name
元素的属性。
你的逻辑中至少还有一个严重的缺陷......上传表单中的PHP代码没有任何意义。在用户上传文件之前,该PHP代码块将在服务器端执行。它不可能奏效。您正在检查的两个变量<input type="file"/>
和$userfile_size
未在任何地方定义。
答案 2 :(得分:0)
在我的情况下,我忘记创建要上传的文件夹。因此,请检查指定的上传路径是否可用。