PHP-图像上传不起作用


PHP - Image uploading not working

可能重复:
通过PHP上传图像返回空数组

我无法成功将图像/文件上传到我的服务器。php如下:

//This is the directory where images will be saved
$uploadDir = "./";
$uploadFile = $uploadDir . basename( $_FILES['photo']['name']);
//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $uploadFile)){
    echo "The file has been uploaded successfully.";
} else {
    print_r($_FILES);
}

我选择了这个脚本所在的目录,以确保在上传到最终目录之前的功能。我想上传照片,稍后会检查文件扩展名,但目前我至少需要上传功能才能工作。

形式如下:

<form id="imageUploadForm" name="imageForm" enctype="multipart/form-data" action="imageController.php" method="post">
<label for="photo" class="blogLabel">Upload an Image</label>
<input type="file" name="photo" id="imageUpload">
<input type="submit" name="submit" id="imageSubmit" class="btn btn-primary" value="Upload">
</form>

print_r($_FILES)返回:Array ( [photo] => Array ( [name] => imgres.jpeg [type] => image/jpeg [tmp_name] => /tmp/php1rqFUO [error] => 0 [size] => 15147 ) )

PHP没有写入该目录的权限。如果您正在使用LAMP堆栈,则需要向世界提供对该目录的写访问权限。从命令行来看,这是:

chmod -R 777 path/to/dir

小心!实际上,您应该使用与脚本所在的目录不同的目录。选择一个不能执行脚本的目录,这样就不会有人将脚本上传到你的网站,然后在完全访问你的服务器的情况下执行它!