差異

2012-02-04 112 views
4

是什麼副本()和move_uploaded_file)差(差異

我認爲兩者的功能執行相同的操作,然後什麼區別呢?

copy ($_FILES['file']['tmp_name'], 
    "C:/Apache/htdocs/" . $_FILES['file']['name']) 


move_uploaded_file($_FILES['file']['tmp_name'], 
    "C:/Apache/htdocs/" . $_FILES['file']['name']) 

回答

10

此功能檢查,以確保由filename指定的文件是 有效的上傳文件(即它是通過PHP的HTTP POST 上傳機制上傳)。如果該文件有效,它將被移動到目的地給出的 文件名。

如果有任何上傳文件完成任何操作可能會將其內容泄露給 用戶,甚至是同一系統上的其他用戶,則此類檢查尤爲重要。

http://php.net/manual/en/function.move-uploaded-file.php

如果文件名不是有效的上傳文件,那麼不會發生作用,並 move_uploaded_file()以將返回FALSE。

1

複製將文件源複製到目標,而移動將移動它。

當一個文件被複制時,複製意味着臨時緩衝區(源)沒有被清除。

當您移動文件時,將從原始位置刪除臨時緩衝區(source:$ _FILES)中的文件,並將文件移動到目標位置。

+0

OP不會詢問'copy'和'move'之間的區別,而是'copy'(或'move',雖然沒有說明)和一個特殊的函數move_uploaded_file之間的區別。 – Glutexo 2016-03-14 14:41:38