PHP $_FILES 是一个预定义的数组,用来获取通过 POST 方法上传文件的相关信息。如果为单个文件上传,那么 $_FILES 为二维数组;如果为多个文件上传,那么 $_FILES 为三维数组。
建立一个 file.html 演示上传文件,其中的代码如下:
<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 echo "<pre>"; print_r($_FILES); ?>
在 file.html 页面选择文件后,单击 开始上传 按钮,将会在页面输出以下信息:
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 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":"上传成功"}}'; ?>
附:如果要获取文件大小或者文件类型
//获取文件大小 $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{ }