对于普通文件的下载,直接在html中创建下载链接即可,比如:<A href=http://www.jb200.com/ xxx.tar>下载文件</a>。
但在php编程中,对于需要隐藏下载文件地址及其它特殊需求时,则要编写代码来实现了。
这里分享一个php文件下载的函数,分段读取文件,然后传送给客户端。
代码如下:
<?php /** * @功能:文件下载 * @编辑:www.jb200.com */ functiondownload($file_dir,$file_name) //参数说明: //file_dir:文件所在目录 //file_name:文件名 { $file_dir=chop($file_dir);//去掉路径中多余的空格 //得出要下载的文件的路径 if($file_dir!=) { $file_path=$file_dir; if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir))!=/) $file_path.=/; $file_path.=$file_name; } else $file_path=$file_name; //判断要下载的文件是否存在 if(!file_exists($file_path)) { echo对不起,你要下载的文件不存在。; returnfalse; } $file_size=filesize($file_path); header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Accept-Length:$file_size"); header("Content-Disposition:attachment;filename=".$file_name); $fp=fopen($file_path,"r"); $buffer_size=1024; $cur_pos=0; while(!feof($fp)&&$file_size-$cur_pos>$buffer_size) { $buffer=fread($fp,$buffer_size); echo$buffer; $cur_pos+=$buffer_size; } $buffer=fread($fp,$file_size-$cur_pos); echo$buffer; fclose($fp); returntrue; } ?>