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
相关文档:
首先Perl mkdir 的语法是:
1.mkdir('dir', 代表九位二进制数字的十进制值)
设置775,则该值为十进制的509,即二进制的111111101
此数值不能设置为111111111即十进制的511即777。
2.mkdir('dir', 0常见unix3位权限)
可以设置777。
然后在linux下时,由于umask的原因,只能设置为755。
因为创建文件时的权限是umask和 ......
配置PHP开发环境,这是老掉牙的问题了,在网络上一找一大堆。
不过看来看去,头都晕了。还是选定一个文摘好好实践下,若安装成功的话记下来以便以后重装有用处。
最终花了一个下午终于配置好了,够折磨人的说,不过学到很多了。
xp环境
mysql5.0.22
php5.3.2 win32-VC6-x86.zip
httpd2.2.15 win32.msi
phpmyadmin3.3 ......
1.array_multisort()对多个数组或多维数组进行排序可以用来一次对多个数组进行排序或者根据某一维对多维数组进行排序。排序时保留原有的键名关联,实现的功能和SQL中的ORDERBY差不多。
$ar1=array("10",100,100,"a"); $ar2=array(1,3,"2",1); array_multisort($ar1,$ar2); ?> //返回结果(保持了原来数组的关联性) ......
第一步 安装MySQL
[root@localhost usr]# groupadd mysql
[root@localhost usr]# useradd -g mysql mysql
[root@localhost usr]# cd /usr/local
[root@localhost local]# tar -zxvf mysql-5.0.51.tar.gz
[root@localhost local]# cd mysql-5.0.51
[root@localhost mysql-5.0.51# ./configure --prefix=/usr/local/my ......
感谢作者,文章来源
http://www.csask.com/blog/?p=108
eclipse是我非常喜欢的IDE,开源+免费+功能强大+跨平台+跨语言+插件机制,虽然有时候也会有这样那样的问题,但是作为主力开发IDE,eclipse已经非常足够了。
第1步,安装JRE:
sudo apt-get install sun-java6-jre
第2步,下载eclipse:
http://www.eclipse.or ......