PHP实现下载功能的代码,并实现安全下载,隐藏文件真实地址等,需要的朋友可以参考下

wzskynet#163.com

·php escapeshellcmd多字节编码漏洞

·详细讲解PHP中缓存技术的应用

·利用PHP V5开发多任务应用程序

·详细解析 PHP 向 MySQL 发送数据过程

·PHP实现静态发布的方法浅谈

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

复制代码 代码如下:

// 检查 FORM 是否全部填写完毕…

if ($form_completed) {

Header(“Location: http://www.jb51.net/download/info_check.exe”);

exit;

}

?>

或者是以下的情况:

复制代码 代码如下:

开始下载文件

这里利用了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.jb51.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直接输出文件了。

实现php文件安全下载!

复制代码 代码如下:

public function downloads($name){

$name_tmp = explode(“_”,$name);

$type = $name_tmp[0];

$file_time = explode(“.”,$name_tmp[3]);

$file_time = $file_time[0];

$file_date = date(“Y/md”,$file_time);

$file_dir = SITE_PATH.”/data/uploads/$type/$file_date/”;

if (!file_exists($file_dir.$name)){

header(“Content-type: text/html; charset=utf-8”);

echo “File not found!”;

exit;

} else {

$file = fopen($file_dir.$name,”r”);

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

Header(“Accept-Ranges: bytes”);

Header(“Accept-Length: “.filesize($file_dir . $name));

Header(“Content-Disposition: attachment; filename=”.$name);

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

fclose($file);

}

}

php功能代码下载,PHP实现下载功能的代码相关推荐

  1. mysql5.5太平洋,太平洋软件下载站SQL全功能新云2.1商业版代码 下载

    太平洋软件下载站SQL全功能新云2.1商业版代码 下载 更新时间:2007年04月17日 00:00:00   作者: 运行环境:Asp/Access/Asp/Mssql/ 文件大小:30.76 MB ...

  2. 功能强大的html网站后台管理系统模板代码下载

    原文:功能强大的html网站后台管理系统模板代码下载 源代码下载地址 视觉效果不错的后台模板,很完整用于后台开发.. 由最代码官方编辑于2016-7-4 9:29:43

  3. php下载apk文件源码下载,php实现文件下载功能的几个代码分享

    一个简单的php文件下载源代码,虽不支持断点续传等,但是可以满足一些常用的需求了.php下载文件其实用一个a标签就能实现,比如 magento-1.8.1.0.zip .但是遇到一些浏览器能识别的格式 ...

  4. 简单易用且功能丰富的纯Swift下载框架

    Tiercel    Tiercel是一个非常简单易用且功能丰富的纯Swift下载框架.最大的特点就是拥有强大的任务管理功能和可以直接获取常见的下载信息,并且只要加上一些简单的UI,就可以实现一个下载 ...

  5. 网络编程学习(10)/ FTP项目(4) ——文件下载和下载断点续存功能

    网络编程学习(10)/ FTP项目(4) --文件下载和下载断点续存功能 服务端 `lib 文件夹下 main.py` 客户端 `client文件夹下 FTPClient.py 代码 interact ...

  6. jq 之 download下载图片或文件功能,以及一个神奇的download属性!

    在一个项目中很常见的一个效果就是 下载图片.文件功能,下边就介绍两种方法 1.用jq写下载的方法 //html中代码如下 <div><p>点击图片可下载</p>&l ...

  7. java+selenium+autoIt 实现下载(打印)功能

    java+selenium+autoIt 实现下载(打印)功能 selenium是一个开源的自动化测试框架,它可以模拟用户对浏览器的操作,进行自动化的测试.但是,它不仅仅只能用来做测试. AutoIt ...

  8. 使用EasyExcel实现模板下载、数据导入功能

    这里是在springboot项目下使用EasyExcel实现模板下载.数据导入功能. 顺便记录下自己遇到的一些坑. 一.模板下载 1.在你的工程下添加模板文件 2.编写代码实现下载功能 control ...

  9. vue 项目中分别使用 vue-pdf 插件和内嵌 iframe 实现 PDF 文件预览,缩放,旋转,下载,保存等功能 ?

    需求:在 vue  和 element-ui 项目中,有点击按钮预览,下载,打印 PDF 文件 需求,要求支持 PDF 的预览,上下页切换,首尾页切换,页码选择跳转,放大缩小,顺时针逆时针旋转,下载, ...

  10. Vue中实现图片下载到本地功能和导出(下载)excel文件功能:

    一.实现图片下载到本地功能 需求: 将勾选的列表项的id传给后台,让后台处理并下载对应的图片 1. 后台接口: 下载图片zip: GET /download 请求数据类型 application/x- ...

最新文章

  1. 互联网还留给我们这些出路
  2. 解决PLSQL 查询后显示中文为问号(???)问题
  3. Delphi_04_Delphi_Object_Pascal_基本语法_02
  4. sublime关于行操作的快捷键:如快速复制整行等
  5. udp 传输文件 java_Java 网络编程 之 UDP 文件传输
  6. iOS:个人浅谈工厂模式
  7. Spring Boot中使用模板引擎引用资源
  8. c打开指定路径文件_Selenium 系列篇(五):文件篇
  9. markdown这么好用的东西我才知道。。。多么不折腾的我。。。
  10. 37、我的C#学习笔记3
  11. 解决魅族手机不能Toast提示的方法
  12. 大数据下的图片类别以及图片爬取详细的过程(一)
  13. excel 设置下拉选项(限定可选项、限定数据)
  14. atxserver2接入iOS设备
  15. MySQL中trim()函数的用法
  16. 773-780---DOM事件高级(常用鼠标事件,案例:跟随鼠标的天使,常用的键盘事件,案例:模拟京东按键输入内容,案例:模拟京东快递单号查询)
  17. jave-1.0.2免费领取
  18. Compose Android 开发终极挑战赛: 天气应用
  19. Javascript清除IE缓存
  20. 32位PCI转CPCI转接板

热门文章

  1. 送几本~ 648页全彩+395张插图 机器翻译 扛鼎之作
  2. db2查最新值的前一天值_2019年1月珠海最新房价出炉!看看你家房子值多少钱!...
  3. 算法题解题方法技巧及典例汇总
  4. TensorBoard 1.15.0 at http://DESKTOP-DV74NQ2:6006/ 打开html后无法展示解决方案
  5. k-means聚类代码实现
  6. Kernel Method核方法—基本概念
  7. Golang教程:(十五)指针
  8. 使用template.js加载后端数据
  9. LeetCode刷题(14)
  10. php 预处理 防注入,PHP防止sql注入小技巧之sql预处理原理与实现方法分析