PHP中文件上傳的一個問題
更新時間:2010年09月04日 00:00:42 作者:
不知道大家有沒有遇到過這樣的問題,在文件上傳的時候,用 move_uploaded_file 這個函數(shù)不能移動文件,而用copy 或者 rename 確是可以的。
我也一直很困惑。在文檔上,說的比較模糊,就是 move_uploaded_file 這個函數(shù),加了一步檢查,檢查這個文件是否是有 HTTP POST 上傳的,
至于,如何檢查的沒有說。
我google 了好一陣子,都沒有能解決這個問題,也不知道問題出現(xiàn)在哪里。后來,終于決定看源代碼。終于在 源代碼里面看到 把文件名 和
php 配置中的 upload_tmp_dir 這個參數(shù)進(jìn)行比較,如果文件在這個目錄下面,那么 move_uploaded_file 才會進(jìn)行移動操作。而且這個比較是大小寫敏感,/ \ 在Windows 下面也是不一樣的。而在PHP配置文件解析的時候,會調(diào)用一個realpath 函數(shù),也就是是說,你在move_uploaded_file 之前,
必須對$file['tmp_name'] = realpath($file['tmp_name']); realpath 一下。
還有一種情況,大家要注意,就是 move_uploaded_file 如果配置成一個無法訪問的路徑,那么你不管怎么處理,move_uploaded_file 總是不能成功移動文件。
至于,如何檢查的沒有說。
我google 了好一陣子,都沒有能解決這個問題,也不知道問題出現(xiàn)在哪里。后來,終于決定看源代碼。終于在 源代碼里面看到 把文件名 和
php 配置中的 upload_tmp_dir 這個參數(shù)進(jìn)行比較,如果文件在這個目錄下面,那么 move_uploaded_file 才會進(jìn)行移動操作。而且這個比較是大小寫敏感,/ \ 在Windows 下面也是不一樣的。而在PHP配置文件解析的時候,會調(diào)用一個realpath 函數(shù),也就是是說,你在move_uploaded_file 之前,
必須對$file['tmp_name'] = realpath($file['tmp_name']); realpath 一下。
還有一種情況,大家要注意,就是 move_uploaded_file 如果配置成一個無法訪問的路徑,那么你不管怎么處理,move_uploaded_file 總是不能成功移動文件。
相關(guān)文章
php使用json-schema模塊實現(xiàn)json校驗示例
這篇文章主要介紹了php使用json-schema模塊實現(xiàn)json校驗,結(jié)合實例形式分析了json-schema模塊的安裝及使用json-schema模塊進(jìn)行json校驗的相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
PHP獲取數(shù)組中某元素的位置及array_keys函數(shù)應(yīng)用
獲取數(shù)組中一元素的位置有很多方法,其中PHP自身就已經(jīng)內(nèi)置了一個函數(shù)array_keys(),下邊的代碼能夠打印出所有PHP的內(nèi)置函數(shù),感興趣的朋友可以了解下同時學(xué)習(xí)一下函數(shù)array_keys()的使用方法,就當(dāng)鞏固知識量啦2013-01-01
php中base_convert()進(jìn)制數(shù)字轉(zhuǎn)換函數(shù)實例
這篇文章主要介紹了php中base_convert()進(jìn)制數(shù)字轉(zhuǎn)換函數(shù),以實例形式演示了十進(jìn)制數(shù)與二進(jìn)制、八進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換方法,具有很好的參考借鑒價值,需要的朋友可以參考下2014-11-11
php數(shù)組合并array_merge()函數(shù)使用注意事項
array_merge()函數(shù)在php中是對數(shù)組進(jìn)行合并的,可以把多個數(shù)組合成一個數(shù)組,并且不改變原數(shù)組(www.111cn.net)的值了,但今天我在使用array_merge合并數(shù)組時碰到幾個小細(xì)節(jié)上的問題,下面我舉例子給各位朋友看看2014-06-06

