php进行文件的强制下载】的更多相关文章

浏览器下载文件,例如在浏览器中可以直接打开的文件(.gif /.txt等).在进行文件下载操作时,默认是通过浏览器直接打开,而不是下载保存文件.并且通过这种方法下载文件可以不暴漏下载文件所在的路径,可以在下载之前进行一系列的权限控制.如果强制浏览器下载,有二种方案,一是:把所有文件全部做成压缩文件等浏览器无法识别的格式,操作比较繁琐.二是:通过php操作header,进行强制下载. 通过以下代码可以实现php强制文件下载,代码如下 <?php if(isset($_GET['key'])) {…
整理个经常用的强制下载文件的函数,之前就说把一些常用的东西整理出来结果老是没时间,最近陆续把这些东西整理下. public function download() { $id = $this->_get('id'); $M = M("downloads"); $data=$M->where("id=$id and status=1")->find(); !$data && exit; $filename = iconv('UTF-8…
原来一直没有接触过,这几天一直在玩儿文件上传下载的东西.今天又遇到一个坑. 描述:文件上传至服务器后,如果是rar或则其他的非浏览器直接识别的格式,用户点击链接了后是可以直接就被下载下来的.那么如果上传的是php的文件类型呢?这个就涉及到header了. 解决方案:利用header可以强制请求下载文件. header("Content-Type: application/force-download"); header("Content-Disposition: attach…
很多网站都需要做文件下载的功能.如果直接给连接的方式下载的话有很多的弊处...因为有时候需要对下载权限的检查,对下载次数的检查.所以一般采用php的方法进行安全下载.但是下载的时候如果是txt jpg或者pdf等一些浏览器可以直接识别的格式那么浏览器会默认选择直接在浏览器打开而不是保存在本机上. 但是有时我们不想让浏览器直接打开文件,如PDF文件,而是要直接下载文件,那么以下函数可以强制下载文件,函数中使用了application/octet-stream头类型. 代码如下: function…
当前的浏览器能够识别文件格式,如果浏览器本身能够解析就会默认打开,如果不能解析就会下载该文件. 那么使用nginx做资源服务器的时候,如何强制下载文件呢? location /back/upload/file/ { if ($request_filename ~* ^.*?\.(txt|pdf|doc|xls)$){ add_header Content-Disposition "attachment;"; } } 如上,在location中添加头信息即可(测试成功,配置完毕./ngi…
由于业务需要,在点击显示链接(如www.xxx.com/2015-01-15/xxx.png)显示媒体资源(如图片.视频.音频.文档),而在点击下载链接(如www.xxx.com/2015-01-15/xxx.png?download=true)请求静态资源时,强制下载而不是在浏览器中直接显示.经过多方查找各种方案,可以在nginx中设置强制下载,如下: location ~ .*\.(gif|jpg|jpeg|bmp|png|mp3|wma|mp4|swf|txt)$ { if ( $quer…
有过ftp下载文件经验的人都有体验,单独下载一个100M的文件比分开下载100个1M的文件速度快很多,这是因为下载需要解析域名,建立连接等额外开销的时间,因此下载100个文件就要做100次这种额外的开销.因此如果把这个100个文件整合成一个文件下载速度会快很多. 基于上述的方法,可以对HTML中的JS文件也做类似的处理,无论js文件多少个,通过配置文件,把N个js文件合并到一个文件下载.实现手段通过httpHandler.具体代码如下: web.config文件中:   <httpHandler…
项目中经常会有上传和下载的需求,这篇文章简述一下springboot项目中实现简单的上传和下载. 新建springboot项目,前台页面使用的thymeleaf模板,其余的没有特别的配置,pom代码如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://…
为什么叫强制下载  因为你点击你的PDF文件路劲的话   浏览器是默认字网页上打开,而不是下载 我们需要做的就是 修改header头信息  使其变为下载状态 //下载PDF public function forceDownload() { $param = input('param.'); if(!empty($param['enclosure'])){ $filename = ROOT_PATH.'public'.DS.'uploads'.DS.$param['enclosure'].'.p…
文件上传和下载在项目中经常用到,这里主要学习SpringBoot完成单个文件上传/下载,批量文件上传的场景应用.结合mysql数据库.jpa数据层操作.thymeleaf页面模板. 一.准备 添加maven依赖 <!--springboot核心--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifa…