如何解決PHP在Windows IIS上傳的圖片無法訪問的問題

我們不需要死讀硬記,我們需要用基本的知識來發展和增進每個學習者的思考力。以下是小編爲大家搜索整理的如何解決PHP在Windows IIS上傳的圖片無法訪問的問題,希望對大家有所幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

如何解決PHP在Windows IIS上傳的圖片無法訪問的問題

1、我們先用鼠標點擊電腦中的開始菜單,就是左下角的圖標,然後點擊裏面的控制面板工具,點擊就可以彈出控制面板窗口。

2、在彈出的控制面板窗口中,我們看到裏面有很多的圖標功能可以使用,我們這個時候就需要找到的是安全中心,點擊了以後就看到裏面有一個選項爲windows 防火牆點擊選中。

3、我們點擊了以後,彈出一個新的窗口然後在進行設置,我們看到窗口中有一個名爲關閉的選項,大家選擇關閉選項點擊,然後保存關閉窗口即可。

上面的三個步驟就是可以解決我們上網的時候彈出防火牆的提示窗口的'解決技巧,大家要是遇到這樣的情況不知道怎麼解決的話,希望對大家有所幫助。

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

問題總結:

在Windows平臺下如果PHP使用的是IIS的話那麼php在上傳文件時是先將文件上傳到一個臨時目錄下的

(該配置項可以在的" upload_tmp_dir "裏進行配置,由於我們的服務器並沒有進行過配置 ,所以php將使用系統的臨時目錄"C:WindowsTemp" )

然後PHP再將臨時目錄中上傳的文件再移動到你指定的目錄中去

這樣就存在一個問題,即 Temp目錄下默認的權限是沒有相應的IIS訪問權限的(windows默認配置),當文件上傳到該目錄時那麼上傳的文件默認是繼承了 Temp目錄的權限

而PHP再將文件文件移到指定的目錄時,被移動的文件並不會繼承移動後所在的目錄權限

從而導致從瀏覽器訪問被移動的文件時,因爲該文件沒有相應的權限(IIS訪問權限)而無法訪正常問

也就出現了文件上傳成功但瀏覽器訪問時出現 “ 401 - 未授權: 由於憑據無效,訪問被拒絕。 ”的問題

Windows默認的權限配置

更改後的權限配置(必須 包含 IUSER和IIS_IUSERS 權限或 Everyone )

解決辦法:

給中的upload_tmp_dir項設置一個臨時目錄並做好相應的權限( 推薦方法 )

將"C:WindowsTemp"目錄添加相應的權限

重要說明:

的upload_tmp_dir 目錄權限必須要包含 IUSER和IIS_IUSERS 權限

或Everyone