0 Comments

文件下载程序实现

发布于:2012-11-19  |   作者:广州网站建设  |   已聚集:人围观
文件下载程序实现

打开download.php文件,该文件是负责处理文件下载逻辑的。但是它不完善,现在要根据"文件下载列表页面"中"文件下载"选项提供的链接形式接收参数。

注意:在使用header()函数发送原始HTTP标头时,该文件不能有任何字符的输出,否则将影响浏览器识别导致下载失败。广州网站建设

该文件的具体的代码如下:广州网站建设


  1. <? 
  2. //创建数据库连接  
  3. $con = mysql_connect ( 'localhost', 'root', '198251' ) or die ( 'Could not connect: ' . mysql_error () );  
  4. //echo 'Connected successfully';  
  5. $db = mysql_select_db ( 'download', $con );  
  6. if (! $db) {  
  7.     die ( "Can\'t use download : " . mysql_error () );  
  8. } else {  
  9.     //将用户信息插入数据库的user表  
  10.     $sql = "SELECT * FROM 'f_detail' WHERE 'id' ='" . $_GET ['id'] . "' LIMIT   
  11.     0 , 30";  
  12.     $result = mysql_query ( $sql, $con );  
  13.     $row = mysql_fetch_row ( $result );  
  14.     if (! $result) {                                //释放结果集  
  15.         mysql_free_result ( $result );              //关闭连接  
  16.         mysql_close ( $db );  
  17.         echo '数据记录插入失败!';  
  18.         exit ();  
  19.     }  
  20. }  
  21. $file_name = $row [1];          //下载文件名形式如:$file_name = "xxx.rar" 
  22. $file_dir = "up/";              //下载文件存放目录  
  23. if (! file_exists ( $file_dir . $file_name )) {//检查文件是否存在  
  24.     echo "文件找不到";  
  25.     exit ();  
  26. } else {  
  27.     $file = fopen ( $file_dir . $file_name, "r" );  //打开目标文件  
  28.     //输入文件标签   
  29.     Header ( "Content-type: application/octet-stream" );  
  30.     Header ( "Accept-Ranges: bytes" );  
  31.     Header ( "Accept-Length: " . filesize ( $file_dir . $file_name ) );  
  32.     Header ( "Content-Disposition: attachment; filename=" . $file_name );  
  33.     //输出文件内容   
  34.     //读取文件内容并直接输出到浏览器  
  35.     echo fread ( $file, filesize ( $file_dir . $file_name ) );  
  36.     fclose ( $file );  
  37.     exit ();  
  38. }  
  39. ?> 

广州网站设计

执行download.php这个文件,给定id参数为3,根据数据库中对应的数据值可知道,该程序将提示下载名称为1264272773.doc的文件。执行文件效果如图7.4所示。
图7.4  下载提示页面
至此,文件上传和下载的程序实现就全部完成了。通过前面的验证可以知道,程序达到了预先期望的文件归档和安全下载的目的。 广州网站设计
标签:
飞机