文档章节

PHP 通过 X-sendfile 下载

小小小壮
 小小小壮
发布于 05/19 10:29
字数 187
阅读 12
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

PHP代码   自动判断Apache和nginx

<?php
//phpinfo();die;
   // $filename = '11.png';
   // $filename = '11.png';
     $filename = 'Adobe Photoshop CC 2018.zip';
    $filePath = $filename;
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    $ua = $_SERVER["HTTP_USER_AGENT"];
    if (preg_match('/MSIE/', $ua)) {
        header('Content-Disposition: attachment; filename="' . 
            rawurlencode($filename) . '"');
    } elseif (preg_match("/Firefox/", $ua)) {
        header('Content-Disposition: attachment; filename*="utf8\'\'' . 
            $filename . '"');
    } else {
        header('Content-Disposition: attachment; filename="' . 
            $filename . '"');
    }
    header('Content-Transfer-Encoding: binary');
    
    header('Expires: 0');

    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
   
   
    header('Pragma: public');
    header('Content-Length: ' . filesize($filePath));
    
    if (strpos($_SERVER["SERVER_SOFTWARE"], 'Apache') !== false) {
        header('X-Sendfile: ' . $filePath);
    } elseif (strpos($_SERVER["SERVER_SOFTWARE"], 'nginx') !== false) {
        // 使用 nginx 服务器时,则把 文件下载交给 nginx 处理,这样效率高些
        header('X-Accel-Redirect: '. '/' . $filename);
    } else {
        set_time_limit(300);  // 避免下载超时
        ob_end_clean();  // 避免大文件导致超过 memory_limit 限制
        readfile($filePath);
    }

 

nginx 配置

小小小壮
粉丝 1
博文 40
码字总数 9997
作品 0
朝阳
私信 提问
加载中
请先登录后再评论。
程序猿媛一:Android滑动翻页+区域点击事件

滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。文尾附注源码获取途径。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/09
4.3K
1
opm-server-mirror

代码更新 2009-11-25: 加入反爬虫功能。直接Web访问服务器将跳转到Google。 使用方法 下载index.zip 解压index.zip得到index.php 将index.php传到支持php和cURL的国外服务器上 打开 http:/...

luosheng86
2013/01/29
1K
0
基于 ThinkPHP 的内容管理系统--歪酷CMS

歪酷网站管理系统(歪酷CMS)是一款基于THINKPHP框架开发的PHP+MYSQL网站建站程序,本程序实现了文章和栏目的批量动态管理,支持栏目无限分类,实现多管理员管理,程序辅助功能也基本实现了常见的文...

鲁大在线
2013/02/19
7.1K
2
tiny php template--TPT

关于TPT TPT是php实现的用于模板解析小工具,全部实现仅仅60行代码。 配置 DIRCOMPILED和DIRTEMPLATE,分别表示模版编译目录和模版文件目录: define('DIRCOMPILED','/compileddiy');define(......

红猪-侠
2013/03/03
1K
1
PHP web 服务器--YACS

YACS 是一个强大的 PHP 脚本,可以让你维护一个动态的 Web 服务器。 特性: - Runs on your own server, or on a shared web site - Post articles with web forms, by e-mail, or remotely ......

匿名
2013/03/18
864
0

没有更多内容

加载失败,请刷新页面

加载更多

汇总你在 Linux 上的命令使用情况

使用合适的命令,你可以快速了解 Linux 系统上使用的命令以及执行的频率。 汇总 Linux 系统上使用的命令只需一串相对简单的命令以及几条管道将它们绑定在一起。当你的历史记录缓冲区保留了最...

osc_bvincwvq
18分钟前
7
0
Hacker News 简讯 2020-08-15

最后更新时间: 2020-08-15 07:01 Welders set off Beirut blast while securing explosives - (maritime-executive.com) 焊工在固定炸药的同时引爆了贝鲁特爆炸 得分:383 | 评论:322 Factor......

FalconChen
今天
24
0
OSChina 周六乱弹 —— 老椅小猫秋乡梦 梦里石台堆小鱼

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @小小编辑 :《MOM》- 蜡笔小心 《MOM》- 蜡笔小心 手机党少年们想听歌,请使劲儿戳(这里) @狄工 :腾讯又在裁员了,35岁以上清退,抖音看到...

小小编辑
今天
111
3
构建高性能队列,你不得不知道的底层知识!

前言 本文收录于专辑:http://dwz.win/HjK,点击解锁更多数据结构与算法的知识。 你好,我是彤哥。 上一节,我们一起学习了如何将递归改写为非递归,其中,用到的数据结构主要是栈。 栈和队列...

彤哥读源码
今天
17
0
Anaconda下安装keras和tensorflow

Anaconda下安装keras和tensorflow 一、下载并安装Anaconda: Anaconda下载 安装步骤: 如果是多用户操作系统选择All Users,单用户选择Just Me 选择合适的安装路径 然后勾选这个,自动配置环境...

Atlantis-Brook
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部