Heim > Backend-Entwicklung > PHP-Tutorial > 通过PHP将文件以流的方式发送客户端

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

WBOY
Freigeben: 2016-06-23 13:35:30
Original
956 Leute haben es durchsucht

以前在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 Densin.Tian@CisternData 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 );?>
Nach dem Login kopieren


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage