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