move_uploaded_file() 函數(shù)和 rename() 函數(shù)用于將文件移動到服務器上的不同文件夾中。在這種情況下,我們已經(jīng)在服務器的臨時目錄中上傳了一個文件,該方法從該目錄中分配了新目錄。文件 temp 已完全移動到新位置。move_uploaded_file() 僅允許移動通過 PHP 上傳的文件,從而確保此操作的安全性。因此,要移動已經(jīng)上傳的文件,我們使用 rename() 方法。
句法:
move_uploaded_file (string $Sourcefilename, string $destination) : bool 重命名(字符串 $oldname,字符串 $newname [,資源 $context]):bool
- move_upload_file() 方法:此函數(shù)檢查以確保源文件或語法中的“$Sourcefilename”是有效的上傳文件(意味著它是通過 PHP 的 HTTP POST 上傳機制上傳的)。如果文件有效,它將被移動到由destination 或語法中的'$destination' 給出的文件名。
如果對上傳文件進行的任何操作都可能向用戶甚至同一系統(tǒng)上的其他用戶泄露其內(nèi)容,則這種檢查尤為重要。請注意,如果目標文件已經(jīng)存在,它將被覆蓋。由于這個原因,應首先檢查文件的可用性,然后必須采取唯一的措施。 - rename() 方法:此方法嘗試將 oldname 重命名為 newname,必要時在目錄之間移動它。如果 newname 文件存在,那么它將被覆蓋。如果存在重命名新名稱目錄,則此函數(shù)將發(fā)出警告。
示例:此示例是一個代碼,它在名為 Uploads 的目錄中上傳一個文件,然后將其路徑更改為另一個名為 New 的目錄。
上傳.html
|
上傳文件.php
|
注意:目錄 Uploads 和 New 已經(jīng)存在一次,因此如果它們在服務器中不可用,則必須創(chuàng)建它們。
代碼運行:
使用重命名方法運行的代碼(移動到新)
重要方法:
- file_exists($target_file):此方法用于檢查路徑是否存在。如果存在則返回真,否則返回假。
- basename( $_FILES[“file”][“name”] ):該方法用于獲取所選文件的名稱,其特殊之處在于它對用戶提供的輸入字符串進行操作,并且不知道實際文件系統(tǒng)并提供瀏覽器提供的安全功能的使用。