91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決is_uploaded_file函數引發的不能上傳文件問題

發布時間:2021-10-08 16:43:10 來源:億速云 閱讀:116 作者:iii 欄目:開發技術

這篇文章主要講解了“如何解決is_uploaded_file函數引發的不能上傳文件問題”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何解決is_uploaded_file函數引發的不能上傳文件問題”吧!

起因:

在一個項目中,接到用戶反饋說其所有客戶不能上傳文件,都返回失敗。經過排查發現是PHP中的is_uploaded_file函數在搗鬼。

細節分析:

在正常情況下,通過PHP 上傳文件 ,需要通過is_uploaded_file函數來判斷文件是否是通過 HTTP POST 上傳的,這可以用來確保惡意的用戶無法欺騙腳本去訪問本不能訪問的文件,例如 /etc/passwd。
而本次遇到的問題是本來應該是C:/WINDOWS/Temp/php99.tmp這樣的tmp_name,卻變成了C://WINDOWS //Temp//php99.tmp這種,導致is_uploaded_file函數返回錯誤的信息。

處理方式:

在加上如下代碼后,問題解決。
$file['tmp_name'] = str_replace('////', ‘//', $file['tmp_name']);
注意,“////”實際字符串就是兩個/,其他兩個是用來表示轉義的。

深入研究:

為什么在默寫特定的環境下會出現這種情況呢,我們來看如下分析:
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On
在PHP的默認配置中magic_quotes_gpc是On的,而打開了magic_quotes_gpc參數的PHP環境會自動對GET/POST /Cookie添加addslashes效果。注意,并不會為$_FILES添加addslashes效果。
而當magic_quotes_gpc是Off的時候,由于為$_FILES數組添加了addslashes作用,反而出現了問題。也就在 magic_quotes_gpc是Off的PHP環境下都會出現此問題。

順帶說句,SVN上的MooPHP代碼已經修復此問題。

is_uploaded_file函數解析:

判斷文件是否是通過 HTTP POST 上傳的
bool is_uploaded_file ( string $filename )
如果 filename 所給出的文件是通過 HTTP POST 上傳的則返回 TRUE。這可以用來確保惡意的用戶無法欺騙腳本去訪問本不能訪問的文件,例如 /etc/passwd。 這種檢查顯得格外重要,如果上傳的文件有可能會造成對用戶或本系統的其他用戶顯示其內容的話。

為了能使 is_uploaded_file() 函數正常工作,必段指定類似于 $_FILES['userfile']['tmp_name'] 的變量,而在從客戶端上傳的文件名 $_FILES['userfile']['name'] 不能正常運作。

感謝各位的閱讀,以上就是“如何解決is_uploaded_file函數引發的不能上傳文件問題”的內容了,經過本文的學習后,相信大家對如何解決is_uploaded_file函數引發的不能上傳文件問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

垫江县| 深圳市| 蒙山县| 黄大仙区| 阿拉善右旗| 林甸县| 务川| 渝中区| 会同县| 三明市| 迁西县| 龙山县| 镇雄县| 鸡东县| 禹州市| 米脂县| 襄垣县| 杭州市| 荆州市| 紫云| 侯马市| 九江县| 普格县| 梅河口市| 会昌县| 崇明县| 通榆县| 兴国县| 凌源市| 巩留县| 阿瓦提县| 江达县| 仁寿县| 休宁县| 丰镇市| 新乐市| 伊吾县| 宁远县| 永康市| 安平县| 石渠县|