你一定会笑我"下载文件"如此简单都值得说?当然并不是想象那么简单。例如你希望客户要填完一份表格,才可以下载某一文件,你第一个想法一定是用"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: p_w_upload; filename=" . $file_name);

  //输出文件内容

  echo fread($file,filesize($file_dir . $file_name));

  fclose($file);

  exit;}

  而如果文件路径是"http"或者"ftp"网址的话,则源代码会有少许改变,程序如下:

  $file_name = "info_check.exe";

  $file_dir = "www.easycn.net/";

  $file = @ fopen($file_dir . $file_name,"r");

  if (!$file) {

  echo "文件找不到";

  } else {

  Header("Content-type: application/octet-stream");

  Header("Content-Disposition: p_w_upload; filename=" . $file_name);

  while (!feof ($file)) {

  echo fread($file,50000);

  }

  fclose ($file);

  }

  这样就可以用PHP直接输出文件了。

转载于:https://blog.51cto.com/excelsior/1357342

PHP实现文件安全下载相关推荐

  1. php文件开放下载安全,php实现文件安全下载

    你一定会笑我"下载文件"如此简单都值得说?当然并不是想象那么简单.例如你希望客户要填完一份表格,才能下载某一文件,你第一个想法一定是用 "Redirect"的方 ...

  2. php文件安全实现方法,php安全下载大文件的实现代码

    先来看下一般文件的安全下载方法: 代码示例: php /** * 一般文件安全下载 * edit www.# */ $durl = 'file/phpcms2008_o2abf32efj883c91a ...

  3. php 代码下载_PHP实现下载功能的代码

    wzskynet#163.com ·php escapeshellcmd多字节编码漏洞 ·详细讲解PHP中缓存技术的应用 ·利用PHP V5开发多任务应用程序 ·详细解析 PHP 向 MySQL 发送 ...

  4. php功能代码下载,PHP实现下载功能的代码

    PHP实现下载功能的代码,并实现安全下载,隐藏文件真实地址等,需要的朋友可以参考下 wzskynet#163.com ·php escapeshellcmd多字节编码漏洞 ·详细讲解PHP中缓存技术的 ...

  5. php页面怎么转换成静态页面,php如何生成静态页面

    用php生成静态html页面 因为每次用户点击动态链接的时候都会对服务器发送数据查询的要求 对于一个访问量可能达百万千万级别的网站来说 这无疑是服务器一个大大的负担 所以把动态数据转换成静态html页 ...

  6. 跟踪管理文档开发日记

    2014年2月17号 星期一 一:关于manage document):今天之前有两个问题一直不明白: 1)怎样将一个数据库读出的记录文件(show.php)显示在主界面(main.php)恰当的位置 ...

  7. 如何在口袋和Instapaper之间导入文章

    If you're considering leaving your read-it-later application of choice for greener pastures, you don ...

  8. iphone开发笔记和技巧总结

    在iphone程序中实现截屏的一种方法: //导入头文件   #importQuartzCore/QuartzCore.h //将整个self.view大小的图层形式创建一张图片imageUIGrap ...

  9. web安全:JS纯前端实现图片或文件安全的上传和下载功能

    背景 在做前端开发的过程中,做过很多的项目,都会遇到图片预览和展示.一般的图片都是用于页面美化,信息解释说明的作用.但是在接触某些业务场景时,例如用户注册需要上传用户个人身份证照片,办理业务需要上传证 ...

最新文章

  1. 书评 | 圈内大佬怎么看编程日历
  2. vue项目在IE中显示空白,报错:vuex requires a Promise polyfill in this browser
  3. python3精要(26)-map
  4. larval+mysql+不等于_MySQL学习日记(19)比较运算符
  5. matlab自带的人脸分类器,基于MATLAB,运用PCA+SVM的特征脸方法人脸识别
  6. oracle truncate 日期,【Oracle】truncate和delete区别
  7. 【docker】安装教程
  8. ASP.NET前台html页面AJAX提交数据后台ashx页面接收数据
  9. python怎么复数乘方开方_孩子数学不好怎么办?怎样让孩子学好数学的方法
  10. presto查询报错
  11. 线搜索中有最速下降法、牛顿法、拟牛顿法、共轭梯度法汇总
  12. java composite 模式_《JAVA设计模式》中的组合模式Composite
  13. 最适合Java程序员的Java学习全套资料分享
  14. MATLAB小技巧(14)三角函数作图
  15. 标题中冒号的用法_英文中冒号的各种用法
  16. Java异常抛出及自定义异常
  17. 请编程序将“China“译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如:字母“A”后面第4个字母时“E“,用“E“代替“A“。因此,“China“应译为“Glmre”。请编一程序
  18. python滑块验证(打码)+pillow裁剪图片
  19. css文字长度实现宽度自适应、显示三行超出省略号
  20. 迪杰斯特拉算法及变式(最短距离,打印路径,最短经过节点数)

热门文章

  1. 默认登录_常见品牌路由器默认登录密码大全
  2. java文件读写 outputstream_java IO文件读写例子(OutputStream,InputStream,Writer,Reader)...
  3. 3d打印 路径规划_3D打印螺旋桨技术的应用和挑战
  4. python xlrd xlwt pandas 模块 区别_python如何读写excel文件|python教程|python入门|python教程...
  5. 东北电力大学计算机网络复试题,2020年东北电力大学计算机学院复试(20200901201159).pdf...
  6. java xfire webservice client_Xfire调用 webservice封装
  7. 最简单的打造淘宝商品爆款步骤
  8. python dict遍历文件_python 字典(dict)遍历的四种方法性能测试报告
  9. 记一次从代码审计到拿下内网edr的过程
  10. 干货|代码安全审计权威指南(附下载地址)