> 백엔드 개발 > PHP 튜토리얼 > 透过PHP将文件以流的方式发送客户端

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

WBOY
풀어 주다: 2016-06-13 12:19:11
원래의
1038명이 탐색했습니다.

通过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 );?>
로그인 후 복사


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿