php移動文件的函數 move_uploaded_file()和copy

最近遇到的問題就是:用戶提交一個圖片,我這邊給縮放成三種格式的大小,縮放的方法存在,因此我這邊直接就調用三次,結果只有一張圖片上傳,採用循環調用的方法仍是隻有一個圖片,後來發現 提交文件的時候有一個移動函數 move_uploaded_file(),這個函數雖然屢次調用可是隻能執行一次,緣由就在於 move_uploaded_file()只支持post提交的信息,也就是用戶至提交了一個post,第一次調用被執行後,以後就不是post的值也就是說不在執行了,解決辦法就是用copy代替 move_uploaded_file() 函數

參考官方手冊的說明: move_uploaded_file() post

本函數檢查並確保由 file 指定的文件是合法的上傳文件(即經過 PHP 的 HTTP POST 上傳機制所上傳的)。若是文件合法,則將其移動爲由 newloc 指定的文件。 spa

若是 file 不是合法的上傳文件,不會出現任何操做,move_uploaded_file() 將返回 false。 圖片

若是 file 是合法的上傳文件,但出於某些緣由沒法移動,不會出現任何操做,move_uploaded_file() 將返回 false,此外還會發出一條警告。 圖片上傳

這種檢查顯得格外重要,若是上傳的文件有可能會形成對用戶或本系統的其餘用戶顯示其內容的話。 file

提示和註釋

註釋:本函數僅用於經過 HTTP POST 上傳的文件。 循環

注意:若是目標文件已經存在,將會被覆蓋。 方法

相關文章
相關標籤/搜索