php使用原生函数实现文件上传及下载
程序员文章站
2022-03-17 21:25:17
...
文件上传:
if ( $_FILES && $_FILES['attachment'] && $_FILES['attachment']['tmp_name']){ $filesize = $_FILES['attachment']['size']; //文件上传大小限制:5M if($filesize > 5*1024*1024){ exit('上传文件大小超出限制!'); } //文件保存目录,如果不存在则创建之 $uploaddir = ROOT_DIR.'/public/attachment/notice/'; if(!file_exists($uploaddir)) mkdir($uploaddir,0755,true); //获取上传文件扩展名 $arr_file = explode('.', basename($_FILES['attachment']['name'])); $filetype = $arr_file[count($arr_file)-1]; //获取源文件名 $attachment_name = basename($_FILES['attachment']['name']); //对文件进行重命名以避免中文字符的影响 $fname = md5(basename($_FILES['attachment']['name']).microtime()).'.'.$filetype; $uploadfile = $uploaddir . $fname; if (move_uploaded_file($_FILES['attachment']['tmp_name'], $uploadfile)) { //获取文件相对路径 $attachment = '/public/attachment/notice/'. $fname; } else { exit('文件上传失败!'); } }
注:"attachment"是上传文件name,根据项目中的具体属性值修改之。本上传处理未对文件类型做限制处理,可根据具体需求自己处理之。
文件下载:
//输入文件标签 Header ( "Content-type: application/octet-stream" ); Header ( "Accept-Ranges: bytes" ); Header ( "Accept-Length: " . filesize ( $attachment_filepath ) ); Header ( "Content-Disposition: attachment; filename=" . $attachment_filename ); //输出文件内容 //读取文件内容并直接输出到浏览器 echo file_get_contents($attachment_filepath); exit ();
上一篇: php fileinode 取得文件模式
下一篇: PHP读取zip文件的方法示例
推荐阅读
-
原生js实现文件上传、下载、封装等实例方法
-
调用WordPress函数统计文章访问量及PHP原生计数器的实现,
-
使用php完成一个用户注册以及管理的demo(php实现单文件与多文件的上传)
-
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址),
-
用PHP文件上传的具体思路及实现_PHP教程
-
Yii2使用自带的UploadedFile实现的文件上传_php实例
-
php header函数实现文本文件下载的方法
-
vue+axios实现文件下载及vue中使用axios的实例
-
调用WordPress函数统计文章访问量及PHP原生计数器的实现_PHP
-
使用PHP和HTML5 FormData实现无刷新文件上传教程_PHP