当前位置:首页 > PHP教程 > php上传下载 > 列表

php文件下载代码,支持远程文件下载

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-09 12:56:05 浏览: 评论:0 

本文章提供的三款文件下载代码有二款是支持本地服务器文件下载的,另一款支持下载远程服务器上的文件下载到本地,代码如下:

  1. function download($file_dir,$file_name
  2. //参数说明: 
  3. //file_dir:文件所在目录 
  4. //file_name:文件名 
  5.     $file_dir = chop($file_dir);//去掉路径中多余的空格 
  6.     //得出要下载的文件的路径 
  7.     if($file_dir != ''
  8.     { 
  9.         $file_path = $file_dir
  10.         if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir)) != '/'
  11.             $file_path .= '/'
  12.         $file_path .= $file_name
  13.     }             
  14.     else 
  15.         $file_path = $file_name;     
  16.      
  17.     //判断要下载的文件是否存在 
  18.     if(!file_exists($file_path)) 
  19.     { 
  20.         echo '对不起,你要下载的文件不存在。'
  21.         return false; 
  22.     } 
  23.  
  24.     $file_size = filesize($file_path); 
  25.  
  26.     header("content-type: application/octet-stream"); 
  27.     header("accept-ranges: bytes"); 
  28.     header("accept-length: $file_size"); 
  29.     header("content-disposition: attachment; filename=".$file_name); 
  30.      
  31.     $fp = fopen($file_path,"r"); 
  32.     $buffer_size = 1024; 
  33.     $cur_pos = 0; 
  34.      
  35.     while(!feof($fp)&&$file_size-$cur_pos>$buffer_size
  36.     {//开源代码phpfensi.com 
  37.         $buffer = fread($fp,$buffer_size); 
  38.         echo $buffer
  39.         $cur_pos += $buffer_size
  40.     } 
  41.      
  42.     $buffer = fread($fp,$file_size-$cur_pos); 
  43.     echo $buffer
  44.     fclose($fp); 
  45.     return true; 
  46.  
  1. <?php  
  2.  
  3. $file_name = "info_check.exe";  
  4.     $file_dir = "/public/www/download/";  
  5.     if (!file_exists($file_dir . $file_name)) { //检查文件是否存在  
  6.     echo "文件找不到";  
  7.     exit;  
  8.     } else {  
  9.     $file = fopen($file_dir . $file_name,"r"); // 打开文件  
  10.     // 输入文件标签  
  11.     header("content-type: application/octet-stream");  
  12.     header("accept-ranges: bytes");  
  13.     header("accept-length: ".filesize($file_dir . $file_name));  
  14.     header("content-disposition: attachment; filename=" . $file_name);  
  15.     // 输出文件内容  
  16.     echo fread($file,filesize($file_dir . $file_name));  
  17.     fclose($file);  
  18.     exit;}  
  19.  
  20.  
  21. ?> 
  22.  
  23.  
  24. <?  
  25. // 如果文件路径是http和ftp,下载代码如下: 
  26. $file_name = "info_check.exe";  
  27.     $file_dir = " http://www.phpfensi.com/";   
  28.     $file = @ fopen($file_dir . $file_name,"r");  
  29.     if (!$file) {  
  30.     echo "文件找不到";  
  31.     } else {  
  32.     header("content-type: application/octet-stream");  
  33.     header("content-disposition: attachment; filename=" . $file_name);  
  34.     while (!feof ($file)) {  
  35.     echo fread($file,50000);  
  36.     }  
  37.     fclose ($file);  
  38.     } 
  39.  
  40.     ?>

Tags: php文件下载 php远程下载

分享到: