这是HTML:
<h1>Upload Custom Logo</h1>
<form action="settings.php" enctype="multipart/form-data" method="post">
<input type="file" name="Logo" />
<input type="submit" value="Upload" name="logoUpload" />
</form>
这是PHP:
<?php /* Handle Logo Upload */
if($_POST['logoUpload']) {
$target_path = "uploads/";
$Logo = $_FILES['Logo']['name'];
$target_path = $target_path . basename( $_FILES['Logo']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo '<div class="statusUpdate">The file '. basename( $_FILES['Logo']['name']).
' has been uploaded</div>';
}
} else{
echo '<div class="statusUpdate">There was an error uploading the file to: '.$target_path.', please try again! Error Code was: '.$_FILES['Logo']['error'].'</div>';
}
}
?>
它始终转到该代码上的“else”语句,我在与此php文件设置为777文件权限相同的目录中有一个uploads文件夹。我测试上传的图片大小不超过10KB。但是move_uploaded_file()总是失败,除了使用else语句生成的自定义错误消息之外,它不会返回任何错误消息。
答案 0 :(得分:3)
您指的是$_FILES
数组中的两个不同名称的文件 -
$Logo = $_FILES['Logo']['name'];
move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)
是哪一个? Logo
或uploadedfile
?
您可能正在引用不存在的数组索引。
答案 1 :(得分:1)
可能的原因:
正如PHP.NET所说:
如果filename不是有效的上传文件,则不会执行任何操作,并且 move_uploaded_file()将返回FALSE。
如果filename是有效的上传文件,但某些文件无法移动 原因,不会发生任何操作,move_uploaded_file()将返回 假。此外,还会发出警告。