国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

基于php下載文件的詳解

2024-05-04 21:53:46
字體:
來源:轉載
供稿:網友
php下載文件,比如txt文件。
出現的效果就是,彈出瀏覽器自帶的下載框,出現另存為操作。有時候會出現內存溢出和超時的現象。
超時的話,設置set_time_limit(0);
出現內存溢出的話,有可能是因為從數據庫中取出的數據量太大導致的。
如果是從文件中讀取的話,出現內存溢出的話,就是代碼讀取方式不正確,調用files或者filegetcontens才會
如果是fopen的話,就給一個緩沖區,固定大小,讀入然后寫入,不會出現內存溢出的情況。
如代碼:
復制代碼 代碼如下:www.CuoXIn.com

if (file_exists($file_path)) { //如果文件存在
$handle = fopen($file_path, "r");
while (!feof($handle)) {
$content = fgets($handle, 4096); //讀取一行
echo $content; //輸出到緩沖區,即php://stdout。達到緩沖區設置值后由tcp傳給瀏覽器進行輸出 一般到512字節就會通過網絡輸出給瀏覽器
}
fclose($handle);
}

但是在輸出之前,要調用一次,@ob_end_flush();不能循環調用,只調用一次就好。
@ob_end_flush();//沖刷出(送出)輸出緩沖區內容并關閉緩沖

文件下載:
content-type://下載的格式,瀏覽器不能解析的格式就會彈出下載框
復制代碼 代碼如下:www.CuoXIn.com

header("Content-Type: application/force-download");
header("Content-Type: application/download");
header("Content-Transfer-Encoding: binary");
header("Cache-Control: must-revalidate, post-check=0, Header("Content-type: application/octet-stream");  //響應內容類型  
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($filename). ' bytes');
Header('Content-Disposition: attachment; filename='.$filename);  //HTTP響應頭

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 驻马店市| 黄浦区| 河西区| 磐石市| 乌鲁木齐市| 西充县| 通渭县| 景洪市| 于都县| 平果县| 南京市| 修武县| 景德镇市| 翁牛特旗| 八宿县| 城步| 定陶县| 昌黎县| 颍上县| 吉水县| 湘潭县| 祁阳县| 都江堰市| 株洲市| 许昌县| 保德县| 承德县| 新竹市| 仁化县| 海伦市| 尼勒克县| 阿拉尔市| 曲水县| 丹东市| 华池县| 波密县| 灌阳县| 广东省| 英山县| 雷州市| 定远县|