国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Win服務器 > 正文

PHP在Windows IIS上傳的圖片無法訪問的解決方法

2024-09-10 00:04:06
字體:
來源:轉載
供稿:網友

PHP在Windows IIS上傳的圖片無法訪問的解決方法

首先登錄到網站后臺進行了測試發現上傳的圖片在確實瀏覽器打不開且出現了無法訪問的錯誤信息:“ 401 - 未 授權: 由于憑據無效,訪問被拒絕。”

然后又測試了該服務器上其他幾個php項目發現也出現了一樣的錯誤: 圖片上傳成功,但瀏覽器沒有權限訪問。
因為測試的幾個php系統是不一樣的,有thinkphp,wordpress,百度ueditor編輯器。
所以這幾個系統同時出現問題的概率實在是太小了,所以基本上排除了程序的bug,且看到上面的錯誤就知道文件是存在的只是沒有訪問的權限,于是登錄到遠程桌面進入服務器找到上傳的圖片目錄并發現了測試的圖片,說明圖片是上傳成功的。
既然之前上傳的圖片可以訪問且圖片也上傳成功了,那為什么新上傳的圖片卻不能訪問了呢?
于是查看上傳目錄,目錄的權限已經包含"Everyone",目錄應該也沒有問題(之前上傳的圖片都可以訪問)

然后一看測試的圖片屬性傻眼了,原來圖片的屬性中并不包含 "Everyone"項這跟上傳的目錄的權限不相符啊( 如果在某個目錄下新建文件,那么新建的文件是繼承該目錄的權限的 )

看到這我就想不明白了,既然目錄的權限有 "Everyone"項那么上傳的圖片的權限也應該繼承父類的權限才對,所以好長時間也沒有想明白這其中的原因,因此也不知道該如何下手解決,只是在網絡上漫無目的看有沒有類似的問題,并按照網站的說明進行嘗試。

最后在 windows下使用IIS配置的PHP無法上傳文件的解決方法 這篇文章的幫助下成功解決了該問題


問題總結:
在Windows平臺下如果PHP使用的是IIS的話那么php在上傳文件時是先將文件上傳到一個臨時目錄下的
(該配置項可以在php.ini的" upload_tmp_dir "里進行配置,由于我們的服務器并沒有進行過配置 ,所以php將使用系統的臨時目錄"C:/Windows/Temp" )。

然后PHP再將臨時目錄中上傳的文件再移動到你指定的目錄中去,這樣就存在一個問題,即Temp目錄下默認的權限是沒有相應的IIS訪問權限的(windows默認配置),當文件上傳到該目錄時那么上傳的文件默認是繼承了Temp目錄的權限,而PHP再將文件文件移到指定的目錄時,被移動的文件并不會繼承移動后所在的目錄權限,從而導致從瀏覽器訪問被移動的文件時,因為該文件沒有相應的權限(IIS訪問權限)而無法訪正常問,也就出現了文件上傳成功但瀏覽器訪問時出現 “ 401 - 未授權: 由于憑據無效,訪問被拒絕。 ”的問題。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 科技| 江北区| 台北县| 阿荣旗| 紫阳县| 望谟县| 万盛区| 海盐县| 浦北县| 亳州市| 马关县| 伽师县| 苗栗县| 娱乐| 抚松县| 吴桥县| 永吉县| 临洮县| 石泉县| 安远县| 海安县| 平武县| 南陵县| 德令哈市| 邵阳市| 灵丘县| 福泉市| 岳普湖县| 五莲县| 宜都市| 竹溪县| 安丘市| 沂水县| 保定市| 深水埗区| 西乌珠穆沁旗| 二连浩特市| 额敏县| 谢通门县| 青浦区| 翁源县|