PHP $_FILES 是一个预定义的数组,用来获取通过 POST 方法上传文件的相关信息。如果为单个文件上传,那么 $_FILES 为二维数组;如果为多个文件上传,那么 $_FILES 为三维数组。
建立一个 file.html 演示上传文件,其中的代码如下:
Markup
<html>
<head></head>
<body></body>
<form enctype="multipart/form-data" action="upload.php" method="POST">
选择文件: <input name="userfile" type="file" />
<input type="submit" value="开始上传" />
</form>
</html>
新建一个用于接收文件信息的 PHP 文件 upload.php,代码如下:
PHP
<?php
echo "<pre>";
print_r($_FILES);
?>
在 file.html 页面选择文件后,单击 开始上传 按钮,将会在页面输出以下信息:
PHP
Array
(
[userfile] => Array
(
[name] => 20200713.jpeg
[type] => image/jpeg
[tmp_name] => C:\Windows\php8B0C.tmp
[error] => 0
[size] => 69329
)
)
上面的
name:表示文件名
tmp_name:表示上传到的临时目录(缓存文件目录)
size:表示文件大小
所以一个简单的PHP上传代码如下:
PHP
<?php
header("Content-Type:text/html;charset=UTF-8");
error_reporting(E_ERROR | E_WARNING | E_PARSE);
date_default_timezone_set('Asia/Shanghai'); //设置中国时区
set_time_limit(120);
if(is_uploaded_file($_FILES['userfile']['tmp_name'])){ //判断文件是否存在
//unlink($_FILES['userfile']['tmp_name']);
//将缓存文件移动到指定位置(即上传文件)
$mulu='./cha/xls/'.$_FILES['userfile']['name'];
move_uploaded_file($_FILES['userfile']['tmp_name'], $mulu);
}
echo '{"code":"1","msg":"上传成功","data":{"src":"'.$mulu.'","a":"上传成功"}}';
?>
附:如果要获取文件大小或者文件类型
PHP
//获取文件大小
$size=$_FILES['userfile']['size'] / 1024 ;
if($size>1025){
$size=$size/1024;
$size=round($size,2).' M';
}else{
$size=round($size,2).' KB';
}
//定义一个数组,判断图片
$arr = array(
'image/gif',
'image/jpeg',
'image/jpg',
'image/png',
'image/tiff',
'image/tif',
'image/bmp',
'image/svg',
'image/webp',
);
if(in_array($_FILES["userfile"]["type"],$arr)){
//显示图片
}else{
}