2009-08-15 33 views
0

我有使用此當用戶上傳照片下方的PHP腳本:在PHP中移動上傳文件的最佳方法?

if (is_uploaded_file($HTTP_POST_FILES['picture1']['tmp_name'])) { 
    move_uploaded_file($HTTP_POST_FILES['picture1']['tmp_name'], $full_file_path); 
} 

我很好奇,我應該用這個呢?如果是這樣,是否有任何好處?

if (is_uploaded_file($HTTP_POST_FILES['picture1']['tmp_name'])) { 
    copy($HTTP_POST_FILES['picture1']['tmp_name'], $full_file_path); 
} 

此外,當一個腳本結束是位於@ $ HTTP_POST_FILES文件[ '圖片1'] [ 'tmp_name的值']全自動刪除?

回答

3

首先,您應該使用$_FILES而不是$HTTP_POST_FILES。後者已被棄用,它會從PHP平臺去除PHP 6

其次的,用move_uploaded_file(),因爲它額外安全檢查相比copy()。我不知道這意味着什麼,但that's what the manual says

5

move_uploaded_file有優惠,例如它會檢查,以確保該文件是一個有效的upladed文件,這是很重要的:

這類檢查就顯得尤爲重要,如果有任何機會,任何與上傳完成文件可能會將其內容泄露給用戶,甚至可能會泄露給同一系統上的其他用戶。 - PHP文檔

此外,而不是複製數據,你只是移動它。這意味着更少的整體數據被創建。

第二個問題:是的,文件在腳本結束後被刪除,這意味着除非您移動它,否則PHP無法訪問它。