目前使用IIS架站,製作可上傳圖片(上傳到伺服器的temp資料夾後搬移到指定資料夾下)和文字的表單,途中克服了中文檔名...等等讓檔案無法上傳的各種問題,在我以為成功完成時發現,這些被上傳的圖片在網頁上通通無法顯示,確認多次路徑沒問題,用F12查看說是權限問題,手動將檔案安全性的地方加上Users群組就可以正常顯示,不過每上傳一個檔案就要一個一個改有點不便,後來嘗試在temp資料夾加上Users及IIS_Users群組,但是上傳的圖片依舊沒有權限,請問各位大大要如何才能讓圖片一上傳就擁有Users權限,先謝謝各位大大了。
需要其他資料會再補上,謝謝!
下方附上檔案上傳後使用者的樣子
可以檢查PHP上傳檔案的temp資料夾和你上傳檔案要存放的資料夾是否有足夠的權限
temp資料夾預設應該是在 C:/windows/temp,若有改位置,就以那個為主
若不確定PHP的temp資料夾在哪,可以用 $_FILES['filename]['tmp_name'] 確認
檔案存放資料夾就看你放在哪了
接著就分別右鍵->內容->安全性,看一下是不是有足夠的權限
我感覺比較像是你的temp資料夾權限不足,導致移動到你指定的資料夾時,產生權限不足的狀況
建議可以echo $_FILES['filename]['tmp_name'] 確認你的temp資料夾位置是哪裡,權限是不是有問題
有可能你設定的temp資料夾權限是錯的
感謝s大大回覆!這邊針對大大給的方向做回覆
temp資料夾是C:\Windows\Temp 沒改過,在截圖權限的過程中發現Users的讀取權限沒有被勾起,套用勾起後顯示權限不足,但還是繼續讓它執行後圖片有權限了!!!真的很感謝s大大!!!
另外,測試暫存位置顯示C:\Windows\Temp\php45AB.tmp,有先註解搬移資料夾,但是temp資料夾裡沒有php45AB.tmp檔案,蠻神奇的@@
因為PHP執行完成後,就會將temp的檔案作刪除了
除非有下 move_uploaded_file()
才會保存檔案
最後恭喜問題有順利解決~
繼續往下一個航道前進吧!!
原來如此XD 再次感謝s大大熱心回覆,謝謝!!!
你要確認一下上傳圖片是用哪個帳號? 是用匿名帳號嗎? 那權限當然不夠哦.....
您還可以嘗試使用ICACLS命令來批量更改檔案和資料夾的權限。
icacls "C:\inetpub\wwwroot\temp" /grant "IIS_IUSRS:(R)" /T
ICACLS 是 Windows 提供的命令列工具,用於檢查和修改檔案和資料夾的權限。
這個命令將給予群組 IIS_IUSRS 讀取權限,適用於資料夾 C:\inetpub\wwwroot\temp 和其中的所有子目錄。