_FILES
$_files主要用在当需要上传二进制文件的地方,录入上传一个abc.mp3文件,则服务器端需要获得该文件的相关信息,则通过变量$_files来取得。
$_FILES['userfile']['name']
客户端机器文件的原名称。
$_FILES['userfile']['type']
文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。
$_FILES['userfile']['size']
已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name']
文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error']
和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。
注: 在 PHP 4.1.0 版本以前该数组的名称为 $HTTP_POST_FILES,它并不像 $_FILES 一样是自动全局变量。PHP 3 不支持 $HTTP_POST_FILES 数组。
如果表单中没有选择上传的文件,则 PHP 变量 $_FILES['userfile']['size'] 的值将为 0,$_FILES['userfile']['tmp_name'] 将为 none。
注:
$_FILES['photo'] 这里的photo是输入框的名称,返回值是个数组类型,其字段有
name、type、size、tmp_name、error
type "image/pjpeg" "image/jpeg" "image/gif" "text/plain"
move_uploaded_file
— 将上传的文件移动到新位置
bool move_uploaded_file ( string $filename , string $destination )
如果目标文件已经存在,将会被覆盖
但由于不能移动文件时 可以COPY文件到目标目录下去
copy (string $filename , string $destination)
is_uploaded_file
— 判断文件是否是通过 HTTP POST 上传的
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
echo "Displaying contents\n";
readfile($_FILES['userfile']['tmp_name']);
} else {
echo "Possible file upload attack: ";
echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
}
注:read_file 输出一个文件到输出缓冲