基于php下载文件的详解
生活随笔
收集整理的這篇文章主要介紹了
基于php下载文件的详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基于php下載文件的詳解 本篇文章是對php下載文件進行了詳細的分析介紹,需要的朋友參考下php下載文件,比如txt文件。出現的效果就是,彈出瀏覽器自帶的下載框,出現另存為操作。有時候會出現內存溢出和超時的現象。超時的話,設置set_time_limit(0);出現內存溢出的話,有可能是因為從數據庫中取出的數據量太大導致的。如果是從文件中讀取的話,出現內存溢出的話,就是代碼讀取方式不正確,調用files或者file_get_contens才會如果是fopen的話,就給一個緩沖區,固定大小,讀入然后寫入,不會出現內存溢出的情況。代碼:<?phpif?(file_exists($file_path))?{?//如果文件存在
$handle?=?fopen($file_path,?"r");
while?(!feof($handle))?{
$content?=?fgets($handle,?4096);?//讀取一行
echo?$content;?//輸出到緩沖區,即php://stdout。達到緩沖區設置值后由tcp傳給瀏覽器進行輸出??一般到512字節就會通過網絡輸出給瀏覽器
}?//by?www.jbxue.com
fclose($handle);
}
?>但是在輸出之前,要調用一次,@ob_end_flush();不能循環調用,只調用一次就好。@ob_end_flush();//沖刷出(送出)輸出緩沖區內容并關閉緩沖文件下載:content-type://下載的格式,瀏覽器不能解析的格式就會彈出下載框<?php
header("Content-Type:?application/force-download");
header("Content-Type:?application/download");
header("Content-Transfer-Encoding:?binary");
header("Cache-Control:?must-revalidate,?post-check=0,?pre-check=0");
header("Pragma:?no-cache");
Header("Content-type:?application/octet-stream"); //響應內容類型
Header("Accept-Ranges:?bytes");
Header("Accept-Length:?".filesize($filename).?'?bytes');
Header('Content-Disposition:?attachment;?filename='.$filename); //HTTP響應頭
?> posted on 2013-08-01 05:24 snowfly123 閱讀(...) 評論(...) 編輯 收藏
$handle?=?fopen($file_path,?"r");
while?(!feof($handle))?{
$content?=?fgets($handle,?4096);?//讀取一行
echo?$content;?//輸出到緩沖區,即php://stdout。達到緩沖區設置值后由tcp傳給瀏覽器進行輸出??一般到512字節就會通過網絡輸出給瀏覽器
}?//by?www.jbxue.com
fclose($handle);
}
?>但是在輸出之前,要調用一次,@ob_end_flush();不能循環調用,只調用一次就好。@ob_end_flush();//沖刷出(送出)輸出緩沖區內容并關閉緩沖文件下載:content-type://下載的格式,瀏覽器不能解析的格式就會彈出下載框<?php
header("Content-Type:?application/force-download");
header("Content-Type:?application/download");
header("Content-Transfer-Encoding:?binary");
header("Cache-Control:?must-revalidate,?post-check=0,?pre-check=0");
header("Pragma:?no-cache");
Header("Content-type:?application/octet-stream"); //響應內容類型
Header("Accept-Ranges:?bytes");
Header("Accept-Length:?".filesize($filename).?'?bytes');
Header('Content-Disposition:?attachment;?filename='.$filename); //HTTP響應頭
?> posted on 2013-08-01 05:24 snowfly123 閱讀(...) 評論(...) 編輯 收藏
轉載于:https://www.cnblogs.com/linuxnotes/p/3229181.html
總結
以上是生活随笔為你收集整理的基于php下载文件的详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哈利波特与死亡圣器下的资源
- 下一篇: INNO SETUP 获得命令行参数