move_uploaded_file
move_uploaded_file
(PHP 4 >= 4.0.3, PHP 5, PHP 7)
move_uploaded_file - 将上传的文件移动到新位置
描述
bool move_uploaded_file ( string $filename , string $destination )
该函数检查以确保由指定的文件filename
是有效的上载文件(这意味着它是通过PHP的HTTP POST上载机制上载的)。如果该文件有效,它将被移动到由给定的文件名destination
。
如果上传的文件有任何可能向用户或甚至同一系统上的其他用户透露其内容的机会,这种检查尤其重要。
参数
filename
上传文件的文件名。
destination
移动文件的目标。
返回值
成功返回TRUE
。
如果filename
不是有效的上传文件,则不会执行任何操作,并且move_uploaded_file()
将返回FALSE
。
如果filename
是有效的上传文件,但由于某种原因无法移动,则不会执行任何操作,并且move_uploaded_file()
将返回FALSE
。此外,还会发出警告。
示例
Example #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];
// basename() may prevent filesystem traversal attacks;
// further validation/sanitation of the filename may be appropriate
$name = basename($_FILES["pictures"]["name"][$key]
move_uploaded_file($tmp_name, "$uploads_dir/$name"
}
}
?>
笔记
注意
:move_uploaded_file()
既是安全模式又是open_basedir。但是,限制只能放在destination
路径上,以允许移动上传的文件,而这些文件filename
可能与这些限制相冲突。move_uploaded_file()
通过只允许移动通过PHP上传的文件来确保此操作的安全性。
警告
如果目标文件已经存在,它将被覆盖。
另请参阅
- is_uploaded_file() - 告诉文件是否通过HTTP POST上传
- rename() - 重命名文件或目录
- 有关简单使用示例,请参阅处理文件上传
← mkdir
parse_ini_file →