PHP is_uploaded_file()、move_uploaded_file() 函数
is_uploaded_file() 函数判断指定的文件是否是通过 HTTP POST 上传的。
语法
is_uploaded_file(file)
参数 | 描述 |
---|---|
file | 必需。规定要检查的文件。 |
说明
如果 file 所给出的文件是通过 HTTP POST 上传的则返回 TRUE。
该函数可以用于确保恶意的用户无法欺骗脚本去访问本不能访问的文件,例如 /etc/passwd。这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。
注释:本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
例子
<?php
$file = "test.txt";
if(is_uploaded_file($file)){
echo ("$file is uploaded via HTTP POST");
}else{
echo ("$file is not uploaded via HTTP POST");
}
?>
输出:
test.txt is not uploaded via HTTP POST
move_uploaded_file() 函数将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。
语法
move_uploaded_file(file,newloc)
参数 | 描述 |
---|---|
file | 必需。规定要移动的文件。 |
newloc | 必需。规定文件的新位置。 |
说明
本函数检查并确保由 file 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 newloc 指定的文件。如果 file 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 false。如果 file 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 false,此外还会发出一条警告。
这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。
注释:本函数仅用于通过 HTTP POST 上传的文件。
注意:如果目标文件已经存在,将会被覆盖。