php下载文件代码
一般的文件安全下载方法可以使用下面的代码:
1. <?php?
2.
3. $durl = 'file/phpcms2008_o2abf32efj883c91a.iso';
4. $filename = 'phpcms2008_o2abf32efj883c91a.iso';
5. $file = @fopen($durl, 'r');
6. header("Content-Type: application/octet-stream");
7. header("Accept-Ranges: bytes");
8. header("Accept-Length: ".filesize($durl));
9. header("Content-Disposition: attachment; filename=".$filename);
10. echo fread($file,filesize($durl));
11. fclose($file);
12. ?>
但是文件一大(超过php.ini配置的内存最大值),这里就出问题了,服务器会非常占用CPU资源,更重要的是文件不能正常下载,只能下载几十Kb的文件,明显不是预期想要的。
1. function download($url, $filename) {
2.
3. // 获得文件大小, 防止超过2G的文件, 用sprintf来读
4. $filesize = sprintf ( "%u", filesize ( $url ) );
5. if (! $filesize) {
6. return;
7. }
8. header ( "Content-type:application/octet-stream\n" ); //application/octet-stream
9. header ( "Content-type:unknown/unknown;" );
10. header ( "Content-disposition: attachment; filename=\"" . $filename . "\"" );
11. header ( 'Content-transfer-encoding: binary' );
12. if ($range = getenv ( 'HTTP_RANGE' )) { // 当有偏移量的时候,采用206的断点续传头
13. $range = explode ( '=', $range );
14. $range = $range [1];
15.
16. header ( "HTTP/1.1 206 Partial Content" );
17. header ( "Date: " . gmdate ( "D, d M Y H:i:s" ) . " GMT" );
18. header ( "Last-Modified: " . gmdate ( "D, d M Y H:i:s", filemtime ( $url ) ) . " GMT" );
19. header ( "Accept-Ranges: bytes" );
20. header ( "C
相关文档:
2010年应该被人们记住,因为SQL将在这一年死去。这一年关系数据库行将就木,这一年开发者发现他们再不需要长时间辛苦的构造列或者表格来存放数据。
2010年将是文档型数据库的起始年。尽管这样的势头已经持续多年,现在才是一个更多,更广泛的文档型数据库出现的年代。从基于云计算的Amazon到Google,大量开源工具,以及随之 ......
1.array_multisort()对多个数组或多维数组进行排序可以用来一次对多个数组进行排序或者根据某一维对多维数组进行排序。排序时保留原有的键名关联,实现的功能和SQL中的ORDERBY差不多。
$ar1=array("10",100,100,"a"); $ar2=array(1,3,"2",1); array_multisort($ar1,$ar2); ?> //返回结果(保持了原来数组的关联性) ......
VC6是什么?
VC6就是legacy Visual
Studio 6 compiler,就是使用这个编译器编译的
VC9是什么?
VC9就是the Visual Studio
2008 compiler,就是用微软的VS编辑器编译的
那我们如何选择下载哪个版本的PHP呢?
如果你是在windows下
使用Apache+PHP的,请选择VC6版本;
如果你是在windows下使用IIS+PHP的,请选择VC9 ......
伪静态用到知识很简单一旦学会,快乐无穷,只需要正则和服务器设置。
先说iis如何设置吧,往下看
下载(IIS Rewrite模块): http://www.isapirewrite.com/,先把产品下载下来,安装在服务器上,记住目录,会有类似Rewrite.dll的文件生成,MMC→IIS信息服务管理器→网站→您的站点→属性,在“ ......