iT邦幫忙

0

上傳到伺服器的圖片權限不足無法顯示在網頁上

2024 2023-01-12 14:34:331657 瀏覽
  • 分享至 

  • xImage

目前使用IIS架站,製作可上傳圖片(上傳到伺服器的temp資料夾後搬移到指定資料夾下)和文字的表單,途中克服了中文檔名...等等讓檔案無法上傳的各種問題,在我以為成功完成時發現,這些被上傳的圖片在網頁上通通無法顯示,確認多次路徑沒問題,用F12查看說是權限問題,手動將檔案安全性的地方加上Users群組就可以正常顯示,不過每上傳一個檔案就要一個一個改有點不便,後來嘗試在temp資料夾加上Users及IIS_Users群組,但是上傳的圖片依舊沒有權限,請問各位大大要如何才能讓圖片一上傳就擁有Users權限,先謝謝各位大大了。
需要其他資料會再補上,謝謝!

下方附上檔案上傳後使用者的樣子
https://ithelp.ithome.com.tw/upload/images/20230112/20145441Q7qdlEgKTN.png

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
sky940811
iT邦研究生 5 級 ‧ 2023-01-12 17:55:21

可以檢查PHP上傳檔案的temp資料夾和你上傳檔案要存放的資料夾是否有足夠的權限

temp資料夾預設應該是在 C:/windows/temp,若有改位置,就以那個為主
若不確定PHP的temp資料夾在哪,可以用 $_FILES['filename]['tmp_name'] 確認
檔案存放資料夾就看你放在哪了

接著就分別右鍵->內容->安全性,看一下是不是有足夠的權限

我感覺比較像是你的temp資料夾權限不足,導致移動到你指定的資料夾時,產生權限不足的狀況
建議可以echo $_FILES['filename]['tmp_name'] 確認你的temp資料夾位置是哪裡,權限是不是有問題
有可能你設定的temp資料夾權限是錯的

2024 iT邦新手 5 級 ‧ 2023-01-12 21:14:02 檢舉

感謝s大大回覆!這邊針對大大給的方向做回覆
temp資料夾是C:\Windows\Temp 沒改過,在截圖權限的過程中發現Users的讀取權限沒有被勾起,套用勾起後顯示權限不足,但還是繼續讓它執行後圖片有權限了!!!真的很感謝s大大!!!

另外,測試暫存位置顯示C:\Windows\Temp\php45AB.tmp,有先註解搬移資料夾,但是temp資料夾裡沒有php45AB.tmp檔案,蠻神奇的@@

sky940811 iT邦研究生 5 級 ‧ 2023-01-13 09:29:14 檢舉

因為PHP執行完成後,就會將temp的檔案作刪除了
除非有下 move_uploaded_file() 才會保存檔案

最後恭喜問題有順利解決~
繼續往下一個航道前進吧!!
/images/emoticon/emoticon12.gif

2024 iT邦新手 5 級 ‧ 2023-01-13 18:01:16 檢舉

原來如此XD 再次感謝s大大熱心回覆,謝謝!!!/images/emoticon/emoticon41.gif

0
aaron3399
iT邦好手 1 級 ‧ 2023-01-12 20:27:12

你要確認一下上傳圖片是用哪個帳號? 是用匿名帳號嗎? 那權限當然不夠哦.....

2024 iT邦新手 5 級 ‧ 2023-01-12 21:23:30 檢舉

感謝a大大回覆!冒昧請問a大大,如何才能知道自己使用了哪個帳戶?/images/emoticon/emoticon16.gif

0
JamesDoge
iT邦高手 1 級 ‧ 2023-01-23 04:04:39

您還可以嘗試使用ICACLS命令來批量更改檔案和資料夾的權限。

icacls "C:\inetpub\wwwroot\temp" /grant "IIS_IUSRS:(R)" /T

ICACLS 是 Windows 提供的命令列工具,用於檢查和修改檔案和資料夾的權限。
這個命令將給予群組 IIS_IUSRS 讀取權限,適用於資料夾 C:\inetpub\wwwroot\temp 和其中的所有子目錄。

我要發表回答

立即登入回答