所以,我试图使用PHP脚本上传图片(特别是书籍封面图片),但我得到了一个"未能打开流:权限被拒绝"错误。我只是通过我的Ubuntu VM来实现它,所以我应该能够更改任何必要的权限。
这是我的PHP代码:
if (!empty($cover))
{
if ((($cover_type == 'image/gif') || ($cover_type == 'image/jpeg') || ($cover_type == 'image/pjpeg') ||
($cover_type == 'image/png')) && ($cover_size > 0) && ($cover_size <= MAXFILESIZE) &&
($cover_width <= MAXIMGWIDTH) && ($cover_height <= MAXIMGHEIGHT))
{
if ($_FILES['cover']['error'] == 0)
{
// Move the file to the target upload folder
$target = UPLOADPATH . basename($cover);
if (move_uploaded_file($_FILES['cover']['tmp_name'], $target))
{
}
UPLOADPATH = images /
我的php.ini文件:
upload_tmp_dir = /var/www/html/my_site/tmp_file_upload/
我的apache2.conf文件:
<Directory /var/www/html/my_site/tmp_file_upload/
Options -Indexes
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html/my_site/images/>
Options -Indexes
</Directory>
我拥有tmp_file_upload目录和images目录,并且我对两者都有写权限。在这个网站上还有其他几个类似的问题,这就是我知道如何查看php.ini文件和apache2.conf文件,但没有真正回答为什么它仍然不允许我添加图像。
答案 0 :(得分:2)
您需要设置文件夹的所有权,以便Apache可以写入
在您的终端类型
中sudo chown www-data:www-data /var/www/html/my_site/tmp_file_upload/
其中www-data是普通用户和apache组