客户端的浏览器通过HTTP协议可以实现文件下载;

方法一:

能提供用户下载的最简单的方法就是使用一个<a></a>标签,比如在页面中添加这么一行代码

 <a href="test/php/123.zip">点击即可下载</a>

只要用户在浏览器中一点击链接就能达到下载的目的,但是这只能针对与浏览器不能直接打开的文件,比如压缩包,可执行文件......

如果是图片,声音,视频等文件,浏览器都是能直接打开的,再用上面的方法,就会直接在浏览器中打开展示提供给用户,此时就得使用另外一种方法了。

方法二:

在给出文件路径之前,要先通过header()函数将修改HTTP协议中的实体首部字段中某些字段的值

比如,要提供一张图片(123.png)给用户下载,那么只需下面的几行代码

 $filename="123.png";
header("Content-Type:image/png");
header("Content-Disposition:attachment;filename=".$filename);
header("Content-Length".filesize($filename));
readfile($filename);

下面是常用的文件类型MIME码:

	header("Content-Type:text/html;charset=utf-8");
header("Content-Disposition:attachment;filename=".$filename);
header("Content-Type: image/jpg");
header("Content-Type:image/png");
header("Content-Type:image/gif");
header("Content-Type:image/jpeg");
header("Content-Type:image/x-png");
header("Content-Type:text/txt");
header("Content-Type:text/plain");
header("Content-Type:text/html");
header("Content-Type:audio/basic");
header("Content-Type:audio/x-m4a");
header("Content-Type:video/mpeg");
header("Content-Type:application/zip");
header("Content-Type:application/x-tar");
header("Content-Type:application/x-gz");
header("Content-Type:application/msword");
header("Content-Type:application/powerpoint");
header("Content-Type:application/vnd.ms-excel");
header("Content-Type:application/x-msdownload");

这只是一个示例,至于怎么用,可以自己修改的哈

PHP文件下载功能实现的更多相关文章

  1. JAVA文件下载功能问题解决日志

    今天给报告系统做了个下载功能,遇到了挺多问题,通过查资料一一解决了. 1.首先遇到的问题是:java后台的输出流输出之后,没有任何报错,浏览器端不弹出保存文件的对话框,原本是ajax请求到后台的con ...

  2. 解决springmvc中文件下载功能中使用javax.servlet.ServletOutputStream out = response.getOutputStream();后运行出异常但结果正确的问题

    问题描述: 在springmvc中实现文件下载功能一般都会使用javax.servlet.ServletOutputStream out = response.getOutputStream();封装 ...

  3. WebView实现文件下载功能

    WebView控制调用相应的WEB页面进行展示.安卓源码当碰到页面有下载链接的时候,点击上去是一点反应都没有的.原来是因为WebView默认没有开启文件下载的功能,如果要实现文件下载的功能,需要设置W ...

  4. Spring Boot实现文件下载功能

    我们只需要创建一个控制器(Controler)文件,即Controller目录下的File_Download.java,其完整目录如下: @Controller public class File_D ...

  5. Spring Boot入门(11)实现文件下载功能

      在这篇博客中,我们将展示如何在Spring Boot中实现文件的下载功能.   还是遵循笔者写博客的一贯风格,简单又不失详细,实用又能让你学会.   本次建立的Spring Boot项目的主要功能 ...

  6. ASP.NET网页中RAR、DOC、PDF等文件下载功能实例源代码

    以前做asp.net下载功能的时候都是采用:<a href="http://www.wang0214.com/wgcms">下载</a>的方式来实现下载. ...

  7. java web文件下载功能实现 (转)

    http://blog.csdn.net/longshengguoji/article/details/39433307 需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片 两种实现方法: 一 ...

  8. 【Servlet】java web 文件下载功能实现

    需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片 两种实现方法: 一:通过超链接实现下载 在HTML网页中,通过超链接链接到要下载的文件的地址 <!DOCTYPE html> & ...

  9. ASP.NET MVC 向浏览器发送文件以提供文件下载功能

    撑到大三了,结果发现周围的同学更加堕落了,尤其是某些人,表面上看起来很认真,实际上三天打鱼,两天晒网,结果一事无成,却还要抱怨学校教育失败. 为了吸取他们的教训,就算是一个小小的编码问题,我也要努力解 ...

  10. springboot成神之——spring文件下载功能

    本文介绍spring文件下载功能 目录结构 DemoApplication WebConfig TestController MediaTypeUtils 前端测试 本文介绍spring文件下载功能 ...

随机推荐

  1. 前端性能优化成神之路--图片懒加载(lazyload image)

    图片懒加载(当然不仅限于图片,还可以有视频,flash)也是一种优化前端性能的方式.使用懒加载可以想要看图片时才加载图片,而不是一次性加载所有的图片,从而在一定程度从减少服务端的请求 什么是懒加载 懒 ...

  2. M100 (0)开发

    [SDCC 2015现场]大疆Paul Yang:多旋翼飞行器的未来就是机器人的未来 http://www.csdn.net/article/2015-11-19/2826268 开发官网 https ...

  3. 使用scrapy爬取海外网学习频道

    一:创建项目文件 1:首先在终端使用命令scrapy startproject huaerjieribao 创建项目 2:创建spider 首先cd进去刚刚创建的项目文件overseas 然后执行ge ...

  4. Linux系统学习之进程管理

    什么是进程? 进程表示程序的一次执行过程,它是应用程序的运行实例,是一个动态的过程.或者可以更简单地描述为:进程是操作系统当前运行的程序.当一个进程开始运行时,就要启动了这个过程.进程包括动态的执行的 ...

  5. 如何使用Simulink模糊控制

    在用这个控制器之前,需要用readfis指令将fuzzy1.fis加载到matlab的工作空间,比如我们用这样的指令:fis1=readfis(‘fis1.fis’):就创建了一个叫myFLC的结构体 ...

  6. 理解HTML5中Range对象

    1.理解Range对象    重新来学习下HTML5中的Range对象和Selection对象,最近在维护富文本编辑器,感觉这方面的知识点很有用,所以趁着周末多学习下~  什么是Range对象? 在H ...

  7. JS常见的小代码

    一:去掉数组里面的重复项. 比如 如下一个数组:var arr = [1,2,4,3,4,3]; 我想要得到数组 [1,2,4,3].为这样的 写一个函数去掉重复的项. var unique = fu ...

  8. (推荐)Skyline调用WMTS服务接口

    文章地址 http://blog.csdn.net/chaiqi/article/details/9302373 供大家学习参考.

  9. 移动电力猫HG260GT pon实现路由拨号

    帐号CMCCAdmin密码aDm8H%MdA 需要将原来上网的路由模式改成如下图中的桥接模式 实际应该就是将上网vlan连接到了1号口,这样路由就可以通过一号口接入拨号了 修改后再通过无线接入路由就不 ...

  10. python 知识

    def action_cancel_sale_order(self,cr,uid,ids,context=None): self.message_post(cr, uid, ids, body=u&q ...