2017-02-28 91 views
0

所以,我試圖上傳圖片(書籍封面圖片,具體)使用PHP腳本,但我得到「未能打開流:權限被拒絕」錯誤。我只是通過我的Ubuntu VM來完成它,所以我應該能夠更改任何必要的權限。不能上傳圖片到本地的PHP - 權限被拒絕

這裏是我的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 =圖像/

我的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 direc tory和images目錄,並且我對這兩者都有寫入權限。在這個網站上還有其他幾個類似的問題,這就是我知道如何查看php.ini文件和apache2.conf文件,但沒有真正解釋爲什麼它仍然不允許我添加圖像。

+1

擁有這個目錄不是你應該擁有的。 apache用戶應該是所有者。 – icecub

回答

2

您需要設置文件夾的所有權,使Apache可能寫它

在你的終端類型

sudo chown www-data:www-data /var/www/html/my_site/tmp_file_upload/ 

其中WWW的數據就是Apache的普通用戶和組

+0

爲了防止類似的問題(以及這個用戶在這裏提出的問題),我建議在'/ var/www/html /' – icecub

+0

好點@icecub上做一個遞歸chown,這將通過-hR標誌完成: 'sudo chown -hR www-data:www-data/var/www/html /' – andrew

+0

謝謝!這工作,雖然我無法改變整個HTML目錄,否則我將無法保存我正在處理的文件。 – KDBartleby