php header函数下载文件实现代码

在php中header函数的使用很大,header不但可以向客户端发送原始的 HTTP 报头信息,同时还可以直接实现文件下载操作

header函数最常用的不是用于下载而是用于发送http类的

跳转

它会执行最后一个,不过是有条件的,例如:

header(‘Location:http://www.111cn.net‘);
header(‘Location:http://www.g.cn‘);
header(‘Location:http://www.baidu.com‘);
//这个就会跳到百度

发送状态

输出状态值到浏览器,主要用于访问权限控制

<?php
header(‘HTTP/1.1 401 Unauthorized‘);
header(‘status: 401 Unauthorized‘);
?>

比如要限制一个用户不能访问该页,则可设置状态为404,如下所示,这样浏览器就显示为即该页不存在

<?php
header(‘HTTP/1.1 404 Not Found‘);
header("status: 404 Not Found");
?>

下载

<?php
$filename = ‘路径+实际文件名‘;
//文件的类型
header(‘Content-type: application/pdf‘);
//下载显示的名字
header(‘Content-Disposition: attachment; filename="保存时的文件名.pdf"‘);
readfile("$filename");
exit();
?>

header函数进行相应的转化

header(‘Content-type: application/octet-stream’);//输出的类型,根据下面提供的MIME表,选择相应的类型
header(‘Content-Disposition: attachment; filename=”下载显示名字.rar”‘);//下载显示的名字
readfile(‘服务器上的文件名.rar’);//输出文件内容

常用的MIME类型
.doc    application/msword
.docx   application/vnd.openxmlformats-officedocument.wordprocessingml.document
.rtf    application/rtf
.xls    application/vnd.ms-excel application/x-excel
.xlsx   application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.ppt    application/vnd.ms-powerpoint
.pptx   application/vnd.openxmlformats-officedocument.presentationml.presentation
.pps   application/vnd.ms-powerpoint
.ppsx  application/vnd.openxmlformats-officedocument.presentationml.slideshow
.pdf   application/pdf
.swf   application/x-shockwave-flash
.dll   application/x-msdownload
.exe   application/octet-stream
.msi   application/octet-stream
.chm   application/octet-stream
.cab   application/octet-stream
.ocx   application/octet-stream
.rar  application/octet-stream
.tar  application/x-tar
.tgz  application/x-compressed
.zip  application/x-zip-compressed
.z    application/x-compress
.wav   audio/wav
.wma   audio/x-ms-wma
.wmv   video/x-ms-wmv
.mp3 .mp2 .mpe .mpeg .mpg   audio/mpeg
.rm   application/vnd.rn-realmedia
.mid .midi .rmi   audio/mid
.bmp   image/bmp
.gif   image/gif
.png   image/png
.tif .tiff    image/tiff
.jpe .jpeg .jpg    image/jpeg
.txt  text/plain
.xml  text/xml
.html text/html
.css  text/css
.js   text/javascript

时间: 2024-08-11 05:42:56

php header函数下载文件实现代码的相关文章

Python之ftp下载文件测试代码

IT审计中有一个最多的执行步骤就是取证.最近的项目过程中,有需要验证ftp服务机密性的需要,就写了一个ftp访问并下载文件的脚本. 此步骤实现目的有三: 1.ftp是否可以匿名访问到敏感信息. 2.在渗透人员拥有低等.中等技术水平前提下,目标ftp服务器的日志记录.入侵检测等是否会产生记录.阻断及预警功能. 3.也是最重要的,在上述条件下,此举基于可渗透时间.现行部署条件.应对防御未来直接支出代价.数据丢失严重性综合得出判断结论,并据此给出建议. 1 #coding=utf-8 2 import

header头 下载文件 参数详解

header("Pragma: public"); //1 header("Expires: 0"); //2 header("Cache-Control:must-revalidate, post-check=0, pre-check=0");//3 header("Content-Type:application/force-download");//4 header("Content-Type:applicat

批量去除Teleport Pro整站下载文件冗余代码

teleport pro tppabs标签批量删除 teleport pro tppabs标签批量删除 使 用Teleport Pro下载的网页代码中包含了很多垃圾代码,比如下载的html网页代码中会出现tppabs标签,而且还会将所有的href标签中加入了很多垃圾代码, 在css会加入了tpa标签,这些都是冗余代码,可以将其全部删除,但是由于代码太多,我们不可能一个个删除,因此可以使用Dreamweaver的查找 /替换工具中的正则表达式来进行替换.1.替换tppabs标签,使用Dreamwe

[转]最全的用正则批量去除Teleport Pro整站下载文件冗余代码

原文地址:http://www.jb51.net/article/43650.htm html原文件中tppabs标记是Teleport Pro软件留下的标记.该软件是离线浏览器,下载完整个网页后,它会在图片或超级链接标签内插入tppabs标签,以记录该图片或超级链接指向的原始地址.因为这个标签不是合法标签,所以普通浏览器会忽略它.但可以通过element.getAttribute("tppabs")在JS中读取这个属性. 如我们手动清除的话,那将是一个无法估计的工作量,需要批量清除.

java 下载文件功能代码例子

public static void down(HttpServletRequest request,    HttpServletResponse response) throws Exception {         String name="aaa.*";//文件名   String uploadPath = UploadFileHelper.getRepositoryPath()+"//";//文件来源 String filePath = name;   

C# ASP 上传/下载文件

1.  上传文件前台页面 1 <div style="padding-left:20px;"> 2 <asp:FileUpload ID="FileUpload1" runat="server" style="width:400px;"/> 3 <asp:Button ID="Button1" runat="server" OnClick="Upl

SpringMVC实现从磁盘中下载文件

除了文件的上传我们还需要从磁盘下载 实现文件的下载只要编写一个控制器,完成读写操作和响应头和数据类型的设置就可以了 下面演示的是从G盘imgs文件夹中下载文件 具体代码如下 1 package com.cqupt.dayday; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 6 import javax

js发送post请求下载文件

大家都知道ajax是不能直接下载文件的,所以一般都是通过一个超链接的形式去下载一个文件 但是当牵扯到需要发送很多数据到服务器上再下载的时候超链接的形式就有些太过勉强了 如下是一个工具方法(依赖jquery) 可以通过发送多数据的情况下下载文件,代码如下: /*===================下载文件 * options:{ * url:'', //下载地址 * data:{name:value}, //要发送的数据 * method:'post' * } */ var DownLoadFi

jmeter关联、下载文件、简单压测

关联 一.什么是关联 关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据. 简单地说就是在测试过程中有些数据的值会经常发生变化,要获取并使用这些数据,把这个动态的信息保存下来,我们就要进行关联. 例如:用户登录后,session信息都不同,有些操作要使用session,就需要将这个动态的信息保存下来. 还有经常遇到的场景,第二个请求提交的参数要从第一个请求的返回数据中获取. 二.关联的用法 常用的两种关联用法 1.json  Path Extractor提取参