PHP上传文件 $_FILES解决方案

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{
	}

 

版权声明:东成西就 发表于 2020-07-20 18:01:01。
转载请注明:PHP上传文件 $_FILES解决方案 | 云知道

暂无评论

暂无评论...