<?php /** * 通过Nginx X-Accel-Redirect 进行文件下载 * X-Accel-Redirect模式下载,会将文件直接推送客户端,不占用服务器物理内存 * * @author Robot * @version 1.0 * @example * $f = new Utils_Download(); * $f->getFile('测试下载文件.zip','xx.zip'); * */ class Utils_Download { private $userAgent; //HTTP_USER_AGENT private $filename; //下载文件名 private $alias; //Nginx目录映射别名 private $limitRate = 1048576; //限速下载 /** * 构造方法 */ public function Utils_Download() { $this->userAgent = $_SERVER ["HTTP_USER_AGENT"]; } /** * 设置Nginx路径映射别名 * * @param string $alias 别名 */ public function setAlias($alias) { $this->alias = $alias; } /** * 下载限速 * * @param int $limitRate 限速字节数Byte/s */ public function setLimitRate($limitRate) { $this->limitRate = $limitRate; } /** * 下载文件 * * @param string $aliasname 下载文件名别名自定义 * @param string $realname 服务器文件真实名称 */ function getFile($aliasname,$realname) { $encoded_filename = urlencode ( $aliasname ); $encoded_filename = str_replace ( "+", "%20", $encoded_filename ); header('Content-Type: application/octet-stream'); header('X-Accel-Buffering: yes'); header('X-Accel-Limit-Rate :'.$this->limitRate); //速度限制 Byte/s header ( 'Content-Type: application/octet-stream' ); if (preg_match ( "/MSIE/", $this->userAgent )) { header ( 'Content-Disposition: attachment; filename="' . $encoded_filename . '"' ); } else if (preg_match ( "/Firefox/", $this->userAgent )) { header ( 'Content-Disposition: attachment; filename*="utf8\'\'' . $aliasname . '"' ); } else { header ( 'Content-Disposition: attachment; filename="' . $aliasname . '"' ); } header('X-Accel-Redirect: /'.$this->alias."/$realname"); } }
相关推荐
学MFC的初级源码--Accel.doc 学MFC的初级源码--Accel.doc
资源分类:Python库 所属语言:Python 资源全名:pip-accel-0.28.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:pip-accel-0.8.12.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:pip-accel-0.33.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:pip-accel-0.42.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
pip-accel, pip加速 pip加速:python 软件包管理器的加速器 pip加速程序是 pip的包装器,它是 python 包管理器。 在给定一个或者多个需求文件的情况下,它加速了pip的使用来初始化 python 虚拟环境。 它通过组合以下...
HID Sensors Driver for Linux v2.13.6.
和 X-Accel-Redirect 有点类似,只需要 php 输出相应文件的路径等信息,然后给一个特殊的响应头即可。 nginx zip 模块使用的响应头是 X-Archive-Files: zip 。加上这个响应头,nginx zip 模块就会处理响
matlab两个矩阵的相关性代码anderson-accel-ncm最接近相关矩阵的交替投影方法的Anderson加速的MATLAB代码 关于 基于该论文, anderson-accel-ncm包含用于修复无效(不确定)相关矩阵的MATLAB函数。 NJ Higham和N....
python-npm-accel:npm的加速器,Node.js程序包管理器
ace各个版本下载地址
Dokku Nginx 缓存 在 Nginx 的代理缓存指令中连线。 用测试。 您的里程可能因香草 Dokku 而异。 安装 $ cd /var/lib/dokku-alt ...快速开始 启用 nginx 请求缓存 $ dokku nginx:cache:... X-Accel-Redirect执行到指定
适用于Linux的高性能PPTP / L2TP / PPPoE / IPoE服务器。
FFT-GPU-Accel Fast Fourier Transform Acceleration Algorithm. (Accelerated by CUDA) 简要介绍 基于FFT的蝶形公式,利用GPU的多核心优势,结合蝶形公式算法中同一层级的运算因子互不干扰的特点,对算法进行了...
accel-pppd-centos-init accel-pppd centos初始化脚本
accel-sim-scripts:accel-simNVBit跟踪的依赖关系跟踪器
官方离线安装包,亲测可用
High perfomance PPTP client and server
Accel.exe