我得到一个$tmp_name为"/tmp/phpv1K2Eh",但我无法将临时文件移动到"uploads/"文件夹。
这在我以前的服务器上运行良好,但在我的新AWS服务器上,我想我需要权限才能写入文件夹?
<?php
$name = $_FILES['file']['name'];
$tmp_name = $_FILES['file']['tmp_name'];
if(isset($name) && !empty($name)){
$location = 'uploads/' .$name;
if(move_uploaded_file($tmp_name, $location)){
echo 'File Uploaded!';
} else {
echo 'Error in upload';
}
}
?>
<form action="test.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br><br>
<input type="submit" name="Submit">
</form>
编辑:需要向文件夹授予上载权限。但是,如何对/var/www中的所有文件夹和子文件夹执行此操作?
$ sudo chown apache:apache /var/www/html/uploads/
PHP警告:move_uploaded_file()无法移动
我的问题是我没有对文件夹的写入权限,我只有READ&执行。这将为"上传"文件夹及其所有子文件夹创建写入权限:
sudo chmod -R ugo+rw /var/www/html/uploads
我回答的主要来源:https://www.linux.com/learn/tutorials/760276-how-to-manage-file-and-folder-permissions-in-linux
了解Linux文件权限:https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions