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

