PHP實(shí)現(xiàn)文件下載【實(shí)例分享】
更新時(shí)間:2017年04月28日 14:59:20 作者:下頁、再停留
本篇文章主要介紹了PHP實(shí)現(xiàn)文件下載的示例代碼。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
話不多說,請看代碼:
<?php
/**
*
*參數(shù)說明:
*
* $file_name 文件名(中英文)
* $_SERVER['DOCUMENT_ROOT'] 獲取apache所在路徑
*
*/
function download($file_name){
//對中文文件名進(jìn)行轉(zhuǎn)碼
$file_name=iconv("UTF-8","GB2312",$file_name);
//文件絕對路徑:E:/wamp/www."/Demo/Object/DownfileSource/".qq.txt
$filepath = $_SERVER['DOCUMENT_ROOT']."/Demo/Object/DownfileSource/".$file_name;
if(!file_exists($filepath)){ //檢查文件是否存在
echo "該文件不存在!";
return;
}
$fp = fopen($filepath, 'r'); //打開文件
$file_size = filesize($filepath); //計(jì)算文件大小
if ($file_size>1) {
echo "<script>window.alert('文件過大,您沒權(quán)限下載')</script>";
return;
}
//HTTP頭部信息
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: ".$file_size);
header("Content-Disposition: attachment; filename=".$file_name);
//輸出文件內(nèi)容 echo fread($fp, $file_size);
$buffer = 1024;
//為了下載安全,做一個(gè)文件字節(jié)讀取計(jì)數(shù)器
$file_count = 0;
//判斷文件是否結(jié)束 feof
while (!feof($fp) && ($file_size-$file_count > 0)) {
$file_data = fread($fp, $buffer); //統(tǒng)計(jì)讀了多少字節(jié)
$file_count+=$buffer;
echo "$file_data"; //把數(shù)據(jù)會(huì)送給瀏覽器
}
fclose($fp);
}
//調(diào)用
download("qq.txt"); //只需填寫文件名即可
?>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
您可能感興趣的文章:
相關(guān)文章
php給一組指定關(guān)鍵詞添加span標(biāo)簽的方法
這篇文章主要介紹了php給一組指定關(guān)鍵詞添加span標(biāo)簽的方法,涉及php正則替換的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
基于php實(shí)現(xiàn)的驗(yàn)證碼小程序
本文主要介紹了基于php實(shí)現(xiàn)的驗(yàn)證碼小程序的具體實(shí)現(xiàn)方法,并做了詳細(xì)注釋,有利于理解與學(xué)習(xí),需要的朋友一起來看下吧2016-12-12
php實(shí)現(xiàn)的中秋博餅游戲之繪制骰子圖案功能示例
這篇文章主要介紹了php實(shí)現(xiàn)的中秋博餅游戲之繪制骰子圖案功能,涉及php圖形繪制中位置、顏色、形狀等相關(guān)屬性設(shè)置操作技巧,需要的朋友可以參考下2017-11-11
PHP簡潔函數(shù)(PHP簡單明了函數(shù)語法)
筆者由于碰到用戶多次修改頁面,所以在麻煩的情況下,改用php完成技術(shù)開發(fā),這篇文章主要記錄PHP簡潔函數(shù),講述PHP簡單明了函數(shù)語法,適合人群為對開源社區(qū)感興趣,對php感興趣,有一點(diǎn)時(shí)間了解下php,希望對讀者帶來快樂2012-06-06
PHP從零開始打造自己的MVC框架之類的自動(dòng)加載實(shí)現(xiàn)方法詳解
這篇文章主要介紹了PHP從零開始打造自己的MVC框架之類的自動(dòng)加載實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式詳細(xì)分析了MVC框架類的自動(dòng)加載原理、定義、實(shí)現(xiàn)方法及相關(guān)操作技巧,需要的朋友可以參考下2019-06-06
PHP學(xué)習(xí)筆記 (1) 環(huán)境配置與代碼調(diào)試
學(xué)習(xí)php第一步就是需要配置php運(yùn)行環(huán)境,這個(gè)是基礎(chǔ),需要的朋友可以參考下。2011-06-06

