我有一個(gè)PHP腳本,我可以透過(guò)它上傳文件,並嘗試將其從/tmp移動(dòng)到test/(相對(duì)路徑,位於我的專案資料夾中,例如/var/www/html/myproject/test將是絕對(duì)路徑)。當(dāng)這種情況發(fā)生時(shí),我會(huì)收到以下錯(cuò)誤。
move_uploaded_file(test/test.csv):無(wú)法開(kāi)啟串流:權(quán)限被拒絕,位於/var/www/html/myproject/import.php的第X行,引用者:http://192.168.1.1/myproject /import2.php
此腳本由apache使用者執(zhí)行,該使用者擁有/test的所有權(quán)(apache擁有者和apache群組都擁有此目錄),具有rwx權(quán)限。
我已經(jīng)檢查了以下內(nèi)容:
__DIR__
都回傳正確的目錄/var/www/html/myproject。 __FILE__
)傳回檔案的正確絕對(duì)路徑move_uploaded_file需要兩個(gè)參數(shù)。 1:你想要上傳的文件 2:放置檔案的絕對(duì)路徑 3:請(qǐng)確保上傳目錄具有適當(dāng)?shù)乃袡?quán)和權(quán)限(注意:如果您使用Apache作為代理,目錄所有權(quán)應(yīng)屬於apache2的使用者:群組)。
示例:move_uploaded_file($_FILES['my_file_field_name']['tmp_name'], "/var/www/html/myproject/test/upload_dir/" . $_FILES['name']['tmp_name']);
閱讀更多:https://www.php.net/manual/pt_BR/function.move-uploaded-file.php