文档章节

实现php文件安全下载

 小果果x
发布于 2014/11/21 14:09
字数 84
阅读 4
收藏 0

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);

  }

 }


© 著作权归作者所有

粉丝 2
博文 109
码字总数 45284
作品 0
东城
私信 提问
PHP 5.2.17&5.3.29 远程DOS漏洞UPUPW修复版

近期PHP被爆出存在远程DOS漏洞,漏洞编为CVE-2015-4024。若黑客利用该漏洞构造PoC发起连接,容易导致目标主机CPU被迅速消耗。 PHP解析multipart/form-datahttp请求的body part请求头时,重复...

UPUPW
2015/06/08
4.7K
14
Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种

今天为在Windows下建立PHP开发环境,在考虑下载何种PHP版本时,遭遇一些让我困惑的情况,为了解决这些困惑,不出意料地牵扯出更多让我困惑的问题。 为了将这些困惑一网打尽,我花了一下午加一...

waveer
2016/06/14
42
0
PHPWAMP开启php_stomp.dll的具体方式,php5.6开启stomp的图解过程

友情提示:其他版本,方式一样的,大家依样画葫芦即可。 首先下载PHP 扩展php_stomp.dll文件,在php官方网站搜索“Stomp”,搜索后,如下图 如下图点击“Installation” 点击Installation后进...

Lccee
2017/01/03
0
0
regpandaplot/php screw plus

#php screw plus github https://github.com/del-xiong/screw-plus oschina http://git.oschina.net/splot/php-screw-plus 详细配置教程 http://www.jianshu.com/p/f6425e2f8643 (使用screw......

regpandaplot
2016/06/28
0
0
php大文件上传,下载,字节转kb

我用的是easyUpload插件,前端根据说明写好之后后端写一个接收接口。 我用的是thinkphp5 上面是后端程序config里面设置默认json格式输出。 拓展下可以在$info里面获取文件大小等信息。 上述内...

曲文
2018/02/24
88
3

没有更多内容

加载失败,请刷新页面

加载更多

MongoDB系列-解决面试中可能遇到的MongoDB复制集(replica set)问题

关注我,可以获取最新知识、经典面试题以及微服务技术分享   MongoDB复制集(replica set):MongoDB复制集维护相同数据集的一组mongod进程,复制集是生产部署的基础,具有数据冗余以及高可用...

ccww_
28分钟前
2
0
SpringBoot系列:Spring Boot集成Spring Cache,使用RedisCache

前面的章节,讲解了Spring Boot集成Spring Cache,Spring Cache已经完成了多种Cache的实现,包括EhCache、RedisCache、ConcurrentMapCache等。 这一节我们来看看Spring Cache使用RedisCache。...

杨小格子
36分钟前
2
0
OpenJDK之CountDownLatch

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CountDownLatch是Doug Lea在JDK1.5中引入的,作用就不详细描述了, await()方法,如果还有线程在执行,那么当前线程...

克虏伯
43分钟前
3
0
简单编程

1.编写一个程序,提示用户输入名和姓,然后以“名,姓”的格式打印出来。 #include<stdio.h>int main(){char name[3];char family[3];printf("Please input your name and family:\n...

电子工程197沈志初
47分钟前
4
0
详解Mysql分布式事务XA(跨数据库事务)

在开发中,为了降低单点压力,通常会根据业务情况进行分表分库,将表分布在不同的库中(库可能分布在不同的机器上)。在这种场景下,事务的提交会变得相对复杂,因为多个节点(库)的存在,可...

slagga
52分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部