返回 上传,下载封装...... 登陆

上传,下载封装成一个单独的文件

坚果缘 2019-07-30 10:54:44 264
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>上传</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data"> 
<input type="file" name="MyFile">
<input type="submit" value="上传">
</form>
</body>
</html>
<?php

//文件的上传操作

/* function upload_file($fileinfo,$uploadpath='./upload',$allowext=['png','jpg','jpeg','txt','gif','html'],$filesize=1000000){
	// 判断上传操作的error值,如果为0,表示上传成功
	if ($fileinfo['error']===0){
		//判断上传的文件夹是否存在,不存在则创建之
		if(!is_dir($uploadpath)){
			mkdir($uploadpath,0777,true);
		}
		//拿到上传文件的后缀名,并且统一为小写格式
		$ext = strtolower(pathinfo($fileinfo['name'],PATHINFO_EXTENSION));
		//判断上传文件名是否符合自定义要求的
		if(!in_array($ext,$allowext)){
		   return '上传文件后缀名不符要求!';
		}
		//判断上传的文件大小是否符合要求
		if($fileinfo['size']>$filesize){
			return '上传文件超过规定大小!';			
		}
		//判断文件是否是通过 HTTP POST 上传的
		if(!is_uploaded_file($fileinfo['tmp_name'])){
			return '非法上传!';
		}
		//上传后生成唯一的文件名(并带后缀)
		$uniname = md5(uniqid(microtime(true),true)).".".$ext;
		//将上传文件放入指定目录中,拼接目录
		$dest = $uploadpath."/".$uniname;
		//判断上传是否成功
	if(!move_uploaded_file($fileinfo['tmp_name'],$dest)){
		return '文件上传失败!';
	}
		return '文件上传成功!';
	
	}else{
		
		//如果上传操作的error值,为其他值,那么返回他们的错误说明
		switch ($fileinfo['error']){
			case 1:
				$res = '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。';
				break;
			case 2:
				$res = '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。';
				break;
			case 3:
				$res = '文件只有部分被上传。';
				break;
			case 4:
				$res = '没有文件被上传。';
				break;
			case 6:
				$res = '找不到临时文件夹。';
				break;
			case 7:
				$res = '文件写入失败。';
				break;
		}
		return $res;
	}
} */

//var_dump(upload_file($_FILES['MyFile']));

//文件下载操作

function down_file($filename){
	//加入header信息
	header("Content-type: application/octet-stream");
	header("Accept-Ranges: bytes");
	header('Accept-Length:'.filesize($filename)); //网上说Accept-Length换成Content-Length,经测试,都可以
	header('Content-Disposition:attachment;filename='.basename($filename));
	readfile($filename);
	exit();
}
//down_file('123.jpg');
?>

老师,题目说的封装成一个方法,是不是要放在一个function中?

最新手记推荐

• 用composer安装thinkphp框架的步骤 • 省市区接口说明 • 用thinkphp,后台新增栏目 • 管理员添加编辑删除 • 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消 回复 发送
  • PHP中文网