move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

move_uploaded_file將上傳的文件移動(dòng)到新位置

說(shuō)明

move_uploaded_file(string $filename, string $destination): bool

本函數(shù)檢查并確保由 filename 指定的文件是合法的上傳文件(即通過(guò) PHP 的 HTTP POST 上傳機(jī)制所上傳的)。如果文件合法,則將其移動(dòng)為由 destination 指定的文件。

這種檢查顯得格外重要,如果上傳的文件有可能會(huì)造成對(duì)用戶(hù)或本系統(tǒng)的其他用戶(hù)顯示其內(nèi)容的話(huà)。

參數(shù)

filename

上傳的文件的文件名。

destination

移動(dòng)文件到這個(gè)位置。

返回值

成功時(shí)返回 true。

如果 filename 不是合法的上傳文件,不會(huì)出現(xiàn)任何操作,move_uploaded_file() 將返回 false

如果 filename 是合法的上傳文件,但出于某些原因無(wú)法移動(dòng),不會(huì)出現(xiàn)任何操作,move_uploaded_file() 將返回 false。此外還會(huì)發(fā)出一條警告。

范例

示例 #1 Uploading multiple files

<?php
$uploads_dir 
'/uploads';
foreach (
$_FILES["pictures"]["error"] as $key => $error) {
    if (
$error == UPLOAD_ERR_OK) {
        
$tmp_name $_FILES["pictures"]["tmp_name"][$key];
        
$name $_FILES["pictures"]["name"][$key];
        
move_uploaded_file($tmp_name"$uploads_dir/$name");
    }
}
?>

注釋

注意:

move_uploaded_file() 對(duì) open_basedir 是敏感的。不過(guò),限制只針對(duì) destination 路徑,因?yàn)樵试S移動(dòng)上傳的文件名 filename 可能會(huì)與這些限制產(chǎn)生沖突。move_uploaded_file() 僅作用于通過(guò) PHP 上傳的文件以確保這個(gè)操作的安全性。

警告

如果目標(biāo)文件已經(jīng)存在,將會(huì)被覆蓋。

參見(jiàn)