ホームページ > バックエンド開発 > PHPチュートリアル > PHP ストリーミング経由でファイルをクライアントに送信する

PHP ストリーミング経由でファイルをクライアントに送信する

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 12:19:11
オリジナル
1067 人が閲覧しました

PHP を介してストリーミング形式でファイルをクライアントに送信します

以前は、同様の機能が BASP21 を介して ASP で実装されていました。 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート