博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php下载文件
阅读量:6815 次
发布时间:2019-06-26

本文共 2031 字,大约阅读时间需要 6 分钟。

hot3.png

 /** * 下载文件 * 可以指定下载显示的文件名,并自动发送相应的Header信息 * 如果指定了content参数,则下载该参数的内容 * @param string $filename 下载文件名 * @param string $showname 下载显示的文件名 * @param string $content  下载的内容 * @param integer $expire  下载内容浏览器缓存时间*/function download($filename, $showname = '', $content = '', $expire = 180) {    if(is_file($filename))     {        $length = filesize($filename);    }    else if($content != '')     {        $length = strlen($content);    }    else     {        die('下载文件不存在!');    }    if(trim($showname) == "")     {        $showname = $filename;    }    //中文文件名不兼容修改    //$showname = basename($showname);    $tmpA = explode('/', $showname);    $showname = end($tmpA);    if(!empty($filename))     {        $type = mime_content_type($filename);    }    else    {        $type    =   "application/octet-stream";    }    //发送Http Header信息 开始下载    header("Pragma: public");    header("Cache-control: max-age=".$expire);    //header('Cache-Control: no-store, no-cache, must-revalidate');    header("Expires: " . gmdate("D, d M Y H:i:s", time() + $expire) . "GMT");    header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()) . "GMT");    header("Content-Length: " . $length);    header("Content-type: " . $type.'; charset=utf-8');    header('Content-Encoding: none');    header("Content-Transfer-Encoding: binary" );        //解决各个浏览器下载文件名乱码问题    $ua = $_SERVER["HTTP_USER_AGENT"];    $encoded_filename = urlencode($showname);    $encoded_filename = str_replace("+", "%20", $encoded_filename);    if (preg_match("/MSIE/", $ua))     {        header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');    }     else if (preg_match("/Firefox/", $ua))     {        header('Content-Disposition: attachment; filename*="utf8\'\'' . $showname . '"');    }     else     {        header('Content-Disposition: attachment; filename="' . $showname . '"');    }        if($content == '' )     {        readfile($filename);    }    else     {        echo($content);    }    exit();}

转载于:https://my.oschina.net/731135090/blog/531468

你可能感兴趣的文章
rac问题思考总结
查看>>
Android 自定义View总结
查看>>
.NET平台开源项目速览(5)深入使用与扩展SharpConfig组件
查看>>
u-boot-1.3.4 移植到S3C2440
查看>>
HotSpot运行时概览#2
查看>>
Go结构体标签表达式v1.0发布,参数校验杀手锏
查看>>
对react中setState的总结
查看>>
[回炉计划]-实现一个图片预加载
查看>>
正则表达式
查看>>
360前端星计划学习-html
查看>>
专注dApp高效执行和高并发的下一代公有链
查看>>
ONE-sys 整合前后端脚手架 koa2 + pm2 + vue-cli3.0 + element
查看>>
携带更方便功能全 iPone与Apple Watch球形尿袋
查看>>
行为型模式:策略模式
查看>>
实现批量数据增强 | keras ImageDataGenerator使用
查看>>
太忙女友消息未及时回复,分手吗?python微信自动消息帮你谈恋爱
查看>>
Java 多线程NIO学习
查看>>
命名实体识别
查看>>
动态切换的动态代理
查看>>
电商项目(下)
查看>>