首页 后端开发 php教程 透过PHP将文件以流的方式发送客户端

透过PHP将文件以流的方式发送客户端

Jun 13, 2016 pm 12:19 PM
application content quot

通过PHP将文件以流的方式发送客户端

以前在ASP下,通过BASP21实现类似功能。现在将PHP版本整理在这里。

通过以下代码中所使用的技术可以实现如下几个可能的需求

1、在有模板的基础上,针对客户的定制下载。

2、一些浏览器本身能够表示的文件类型(如txt文件),可以通过将头信息Content-Type改为 header("Content-Type: application/force-download");进行强制下载。

3、对于一些动态生成文件,比如TXT/CSV等文件,将临时文件及时删除


<?php /** * 本程序实现了将测试文件[test.pdf]创建副本,并将副本读入 * 内存,以流的方式发送给客户端浏览器,最终删除副本的操作。 *  * 本文可以实现的需求: *   1、在有模板的基础上,针对客户的定制下载。 *   2、一些浏览器本身能够表示的文件类型(如txt文件),可以通过将头信息Content-Type *      改为 header("Content-Type: application/force-download");进行强制下载。 *   3、对于一些动态生成文件,比如TXT/CSV等文件,可以将临时文件及时删除 * @author [email&#160;protected] 2015/05/05 */// 文件名扩展名$fileExName = ".pdf";// 原始文件文件名$oldFileMainName = "testfile";// 获得时间戳 YYYYMMDDHHMISS$timestamp = date ( "YmdHis", time () );// 新文件名$newFileName = $oldFileMainName . $timestamp;// 复制文件if (! copy ( $oldFileMainName . $fileExName, $newFileName . $fileExName )) {	die ( "failed to copy" );}// 设置下载头信息header ( "Content-Type: application/pdf" );header ( "Content-Disposition: attachment; filename=20150505.pdf" );// 文件流输出到浏览器readfile ( $newFileName . $fileExName );// 删除文件@unlink ( $newFileFullName );?>
登录后复制


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

python WSGI Application原理是什么 python WSGI Application原理是什么 May 19, 2023 pm 01:25 PM

本篇文章所依赖的python环境为:什么是WSGIWSGI也称之为web服务器通用网关接口,全称是webservergatewayinterface。它定义了在python中web服务器与web应用程序之间应该如何通信并且处理http请求和响应的一个标准,注意,它只是一个协议,或者说是规范、标准,你也可以不按这个标准来,就像我们上一篇文章所写的web服务器那样。WSGI也分为应用程序和服务器网关,其中我们熟知的Flask就是属于应用程序,uWSGI、wsgiref属于服务器网关。个人感觉,WSG

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

SpringBoot之bootstrap和application的区别是什么 SpringBoot之bootstrap和application的区别是什么 May 16, 2023 pm 05:46 PM

bootstrap和application的区别说明bootstrap和application都是SpringBoot项目中的配置文件,他们的区别主要有以下的几个方面(1)加载顺序区别bootstrap配置文件是比application配置文件优先加载的,因为bootstrap是由spring父上下文加载,而application是由子上下文加载(2)优先级区别bootstrap加载的配置信息是不能被application的相同配置覆盖的,如果两个配置文件同时存在,也是以bootstrap为主(

Web Application核心防御机制是什么 Web Application核心防御机制是什么 May 11, 2023 pm 08:46 PM

为防止恶意输入,应用程序实施了大量的安全机制,而这些安全机制在概念上都具有相似性。这些安全机制由以下几个方面组成:1、处理用户访问web应用程序的数据与功能(防止未授权访问)2、处理用户对web应用程序功能输入的数据(防止构造恶意数据)3、应对攻击(处理预料外的报错、自动阻止明显的攻击、自动向管理员发送警报、维护程序的访问日志)4、管理与维护应用程序处理访问通常一个应用程序的用户有不同类型如,普通用户、登录验证用户、管理员。对不同用户web应用程序给予不同的权限,他们只能访问不同的数据与功能。w

CSS 内容属性详解:content、counter 和 quotes CSS 内容属性详解:content、counter 和 quotes Oct 21, 2023 am 10:16 AM

CSS内容属性详解:content、counter和quotesCSS(层叠样式表)是前端开发中不可或缺的一部分,它可以帮助我们美化网页并增强用户体验。在CSS中,有一些特殊的属性可以用于控制文本内容的显示,其中包括content、counter和quotes。本文将详细介绍这些属性,并提供具体的代码示例。一、content属性content属性

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 Jun 13, 2016 am 10:15 AM

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没问题。

图片消失怎么解决 图片消失怎么解决 Apr 07, 2024 pm 03:02 PM

图片消失如何解决先是图片文件上传$file=$_FILES['userfile'];  if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner(image_src ) VALUES ('images/{$file['name'

图片消失怎么解决 图片消失怎么解决 Jun 13, 2016 am 10:09 AM

图片消失如何解决先是图片文件上传$file=$_FILES['userfile'];  if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner(image_src ) VALUES ('images/{$file['name'

See all articles