%60%EF%BC%9A%E4%BD%BF%E7%94%A8%20PHP%20%E5%BB%BA%E7%AB%8B%E8%B3%87%E6%96%99%E5%A4%BE%E7%9A%84%E6%AC%8A%E9%99%90%E8%A2%AB%E6%8B%92%E7%B5%95.png)
我有這個 PHP 腳本:
$dir = FCPATH . 'uploads' . DIRECTORY_SEPARATOR . 'posts'; // is in CodeIngiter
if (!is_dir($dir)) {
mkdir($dir, 755);
}
這將創建一個用於儲存帖子圖像的資料夾。但是我收到此錯誤/警告:
Severity: Warning
Message: mkdir(): Permission denied
我無法建立該資料夾。
我怎樣才能解決這個問題?我的資料夾結構如下所示:
/opt/lampp/htdocs/www/my-site/public/ (uploads/posts) // all folders inside files will generate in php
一些進一步的資訊:如果我評論此程式碼,手動建立posts
資料夾,然後嘗試上傳文件,我會收到一條錯誤訊息,指出目標路徑不可寫。
輸出ls -l /opt/lampp/htdocs/www/my-site/
:
drwxrwxr-x 15 lykos lykos 4096 Sep 17 23:08 application
drwxrwxrwx 6 lykos lykos 4096 Sep 29 22:00 public
drwxrwxr-x 8 lykos lykos 4096 Sep 7 12:31 system
輸出ls -l /opt/lampp/htdocs/www/my-site/public
:
drwxr-xr-x 4 lykos lykos 4096 Sep 18 21:48 css
drwxr-xr-x 2 lykos lykos 4096 Sep 27 19:18 img
-rwxrwxr-x 1 lykos lykos 9872 Sep 17 23:04 index.php
drwxr-xr-x 8 lykos lykos 4096 Sep 27 20:06 js
drwxr-xr-x 2 lykos lykos 4096 Sep 29 20:34 uploads
答案1
問題出在你的mkdir()
呼叫中,而不是在 Ubuntu 中。
按照你的評論,ls -l /opt/lampp/htdocs/www/my-site/public/uploads
不存在,所以你應該呼叫mkdir()
傳遞recursive
參數:
$dir = '/uploads/posts';
if (!is_dir($dir)) {
mkdir($dir, 755, true);
}