摘要:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>上传</title> </head> <body> <form action="upload.php"&nb
<!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中?
批改老师:天蓬老师批改时间:2019-07-31 14:11:46
老师总结:如果只有一个函数可以放在一个function 中, 如果由多个函数构成, 应该创建一个类, 来封装这些函数