IT技术江湖   操作系统   安全技术   平面设计   Web开发   数据库   互联网   搜索引擎   网络广告   
引擎技术江湖  BLOG  合作联系
本站
Google
IT技术江湖
首页>Web开发>php> PHP实现的文件直接输出下载
  • IT技术江湖
  • PHP实现的文件直接输出下载
    http://www.hack1st.com 来源: 2008-03-20 阅读: 评论

      你一定会笑我“下载文件”如此简单都值得说?当然并不是想你想象的那么简单。例如你希望客户要填完一份表格,才可以下载某一文件,你第一个想法一定是用 “Redirect”的方法,先检查表格是否已经填写完毕和完整,然后就将网址指到该文件,这样客户才能下载,例如笔者编写的以下代码:

      <?
       // 检查 FORM 是否全部填写完毕...
       if ($form_completed) {
       Header("Location:
    http://www.ddvip.com/download/info_check.exe");
       exit;
       }
       ?>
      或者是以下的情况:

      “ <a href="http://www.yourwebl.com/users/download.php?id=124524">开始下载文件</a> ”

      这里利用了ID方式接收要下载文件的编号,然后用“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; filename=" . $file_name);
       // 输出文件内容
       echo fread($file,filesize($file_dir . $file_name));
       fclose($file);
       exit;}
       ?>
      而如果文件路径是“http”或者“ftp” 网址的话,则源代码会有少许改变,程序如下:

      <?
       $file_name = "info_check.exe";
       $file_dir = "
    http://www.ddvip.com/";
       $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直接输出文件了。

    上一篇:php命令行参数详解及应用  
    下一篇:PHP空白页面常见原因及解决方法

    ·网友互动--用户名: (新注册) 密码: 匿名评论 [所有评论]
    评论内容:(用户发表意见仅代表其个人意见,评论内容与本站立场无关,请自觉遵守互联网相关政策法规)
    关注此文读者还看过
    • ·PHP实例:实现文件上传的程序源码
      ·在PHP中使用ASP.NET AJAX
      ·PHP 5.0中多态性的实现方案浅析
      ·大型系统上PHP令人不爽的九大原因
      ·初学入门 PHP 和 MySQL
      ·用Suhosin加强PHP脚本语言安全性
      ·完全讲解PHP+MySQL的分页显示示例分析
      ·PHP程序加速探索之服务器负载测试
      ·PHP5手动最简安装方法
      ·用SSH与PHP相连接 确保数据传输的安全性
    最新更新
    • ·PHP实例:实现文件上传的程序源码
      ·在PHP中使用ASP.NET AJAX
      ·PHP 5.0中多态性的实现方案浅析
      ·大型系统上PHP令人不爽的九大原因
      ·用Suhosin加强PHP脚本语言安全性
      ·完全讲解PHP+MySQL的分页显示示例分析
      ·PHP程序加速探索之服务器负载测试
      ·PHP5手动最简安装方法
      ·用SSH与PHP相连接 确保数据传输的安全性
      ·Apache+PHP+MySQL建立数据库驱动的动态网站
    文章关注度排行
    ·PHP开发一个完整、安全的用户登录系统
    ·PHP入门的学习方法
    ·PHP空白页面常见原因及解决方法
    ·Apache+PHP+MySQL建立数据库驱动的动态网站
    ·PHP常用正则表达式收集
    ·PHP学习入门的一些基础知识
    ·php命令行参数详解及应用
    ·提升PHP速度全攻略
    热点推荐
    PHP开发一个完整、安全的用户登录系统
    PHP开发一个完整、安全
    PHP入门的学习方法
    PHP入门的学习方法
    提升PHP速度全攻略
    提升PHP速度全攻略
    频道推荐
    • ·PHP开发一个完整、安全的用户登录系统
    • ·PHP入门的学习方法
    • ·PHP学习入门的一些基础知识
    • ·提升PHP速度全攻略
    本站精华
    PHP入门的学习方法
    PHP入门的学
    提升PHP速度全攻略
    提升PHP速度
    PHP开发一个完整、安全的用户登录系统
    PHP开发一个
    • ·PHP开发一个完整、安全的用户
    • ·提升PHP速度全攻略
    • ·PHP入门的学习方法
    • ·PHP学习入门的一些基础知识
    • | 网站导航 | 联系QQ | 编辑邮箱 | RSS订阅 | 友情链接 | 官方blog
    • 版权所有:IT技术江湖 @2007-2008
    • powered by www.hack1st.com online services. all rights reserved.京ICP备07005766号