您当前的位置是:首页 >> 网站建设 >> 利用php语言开发中如何实现文件的安全下载
  • 利用php语言开发中如何实现文件的安全下载
  • 2008-7-22 22:46:22 中国WebSite网(网站制作) 

          当您看到这一个标题的时候,您一定会笑话我'下载文件'如此简单都值得说吗?当然问题并不是您想象那么简单。比如说,您希望客户要填完一份表格,才可以下载某一文件,您第一个想法一定是用 'Redirect'的方法,先检查表格是否已经填写完毕和完整,然后就将网址指到该文件,这样客户才能下载,但如果您想做一个关于'网上购物'的电子商务网站,考虑安全问题,您不想用户直接复制网址下载该文件,笔者建议您使用PHP直接读取该实际文件然后下载的方法去做。程序如下:
    $file_name = 'info_check.exe';
    $file_dir = '/public/www/download/';
    if (!file_exists($file_dir . $file_name))
     { //检查文件是否存在
           echo '文件找不到';
           exit;
    }
    else
     {
    $file = fopen($file_dir . $file_name,'r'); // 打开文件
    // 输入文件标签
    Header('Content-type: application/octet-stream');
    Header('Accept-Ranges: bytes');
    Header('Accept-Length: '.filesize($file_dir . $file_name));
    Header('Content-Disposition: attachment; filenamee=' . $file_name);
    // 输出文件内容
    echo fread($file,filesize($file_dir . $file_name));
    fclose($file);
    exit;}
    而假如文件路径是'http' 或者 'ftp' 网址的话,则源代码会有少许改变,程序如下: $file_name = 'info_check.exe';
    $file_dir = 'http://www.easycn.net/';
    $file = @ fopen($file_dir . $file_name,'r');
    if (!$file) {
    echo '文件找不到';
    } else {
    Header('Content-type: application/octet-stream');
    Header('Content-Disposition: attachment; filename=' . $file_name);
    while (!feof ($file)) {
    echo fread($file,50000);
    }
    fclose ($file);
    }
    这样话,就可以用PHP直接输出文件了。

  • 团队介绍
  • 联系我们
  • 网站地图
  • 建站流程
  • 本站关键词:网站制作 | 网站建设 | 北京网站制作 | 北京网站建设 | 做网站 | 北京做网站
    Copyright 2007-2008 中国Web网  All Rights reserved
    业务电话:15810436520 联系人:张冬行 E-mail:zhang-donghang@163.com
    联系地址:北京市海淀区南平庄164号
    京ICP备012345678号