<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="PHP中使用X-SendFile头让文件下载更快" id="card1">
<p> 游客</p><p>
标题:PHP中使用X-SendFile头让文件下载更快<br/>
正文:<br/>
一般来说, 我们可以通过直接让URL指向一个位于Document Root下面的文件, 来引导用户下载文件.但是, 这样做, 就没办法做一些统计, 权限检查, 等等的工作. 于是, 很多时候, 我们采用让PHP来做转发, 为用户提供文件下载.代码如下:&amp;lt;?php    $file = &amp;quot;/tmp/dummy.tar.gz&amp;quot;; // @郑州网建    header(&amp;quot;Content-type: application/octet-stream&amp;quot;);    header('Content-Disposition: attachment; filename=&amp;quot;' . basename($file) . '&amp;quot;');    header(&amp;quot;Content-Length: &amp;quot;. filesize($file));    readfile($file);但是这个有一个问题, 就是如果文件是中文名的话, 有的用户可能下载后的文件名是乱码.于是, 我们做一下修改:代码如下:&amp;lt;?php    $file = &amp;quot;/tmp/中文名.tar.gz&amp;quot;;    $filename = basename($file);    header(&amp;quot;Content-type: application/octet-stream&amp;quot;);    //处理中文文件名 @camnpr    $ua = $_SERVER[&amp;quot;HTTP_USER_AGENT&amp;quot;];    $encoded_filename = rawurlencode($filename);    if (preg_match(&amp;quot;/MSIE/&amp;quot;, $ua)) {     header('Cont<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1763&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1763&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1763&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1763&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1763&amp;Page=3">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1763">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1763">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>