在php里移動上傳的文件要用move_uploaded_file,但是為什么非要使用這個函數來移動上傳的文件呢?上傳文件的地址不是在$_FILES數組的tmp_name里面嗎?而且我測試過,用一般的文件函數,像rename和file_get_contents之類的,都可以操作這個文件,那么不使用這個函數到底有什么壞處呢?
1 回答

慕絲7291255
TA貢獻1859條經驗 獲得超6個贊
文件作為一種特殊的表單數據,通過http post請求方式提交至服務器的時候,php會生成一個$_FILES全局數組,相關的文件信息會存放在這個全局數組中。所上傳的文件保存在一個臨時目錄中。
那么,對上傳的文件進行合法性,安全性等進行驗證以后,再通過move_uploaded_file函數將文件移動到服務器上的對應目錄。
事實上也可以通過copy來將函數文件復制到對應的目錄,只要確定了上傳文件的合法性以及安全性。類似下面的代碼:
//先用copy函數,如果失敗,使用move_uploaded_fileif ( ! @copy($temp_file, $upload_path.$file_name)) { if ( ! @move_uploaded_file($temp_file, $upload_path.$file_name)) { return FALSE; } }
- 1 回答
- 0 關注
- 99 瀏覽
添加回答
舉報
0/150
提交
取消