php實(shí)現(xiàn)文件下載實(shí)例分享
更新時(shí)間:2014年06月02日 16:35:47 作者:
php實(shí)現(xiàn)對(duì)文件的下載需要了解一定的http協(xié)議基礎(chǔ),php實(shí)現(xiàn)下載用到四條http協(xié)議的信息,用header進(jìn)行會(huì)寫處理
舉一個(gè)案例:
復(fù)制代碼 代碼如下:
<?php
class Downfile {
function downserver($file_name){
$file_path = "./img/".$file_name;
//轉(zhuǎn)碼,文件名轉(zhuǎn)為gb2312解決中文亂碼
$file_name = iconv("utf-8","gb2312",$file_name);
$file_path = iconv("utf-8","gb2312",$file_path);
$fp = fopen($file_path,"r") or exit("文件不存在");
//定義變量空著每次下載的大小
$buffer = 1024;
//得到文件的大小
$file_size = filesize($file_path);
//header("Content-type:text/html;charset=gb2312");
//會(huì)寫用到的四條http協(xié)議信息
header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");//可以忽略
header("Content-Length: ".$file_size);//原文這里是Accept-Length經(jīng)查閱http協(xié)議無此項(xiàng)
header("Content-Disposition:attachment;filename=".$file_name);
//字節(jié)技術(shù)器,紀(jì)錄當(dāng)前現(xiàn)在字節(jié)數(shù)
$count = 0;
while(!feof($fp) && $file_size-$count>0){
//從$fp打開的文件流中每次讀取$buffer大小的數(shù)據(jù)
$file_data = fread($fp,$buffer);
$count+=$buffer;
//將讀取到的數(shù)據(jù)讀取出來
echo $file_data;
}
//關(guān)閉文件流
fclose($fp);
}
}
?>
調(diào)用這個(gè)函數(shù)傳入文件名就能對(duì)文件實(shí)現(xiàn)下載,不過要注意修改$file_path
相關(guān)文章
PHP遞歸獲取目錄內(nèi)所有文件的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狿HP遞歸獲取目錄內(nèi)所有文件的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
在IIS7.0下面配置PHP 5.3.2運(yùn)行環(huán)境的方法
最近心血來潮,想學(xué)習(xí)一下php,既然想學(xué)習(xí)了就得需要搭環(huán)境。在網(wǎng)上找來找去都是說IIS5.0或者6.0的配置。真是看得云里霧里的,這樣直接影響了我的判斷力?,F(xiàn)特意寫下來在IIS7.0下面如何進(jìn)行配置PHP。2010-04-04
ThinkPHP中的create方法與自動(dòng)令牌驗(yàn)證實(shí)例教程
這篇文章主要介紹了ThinkPHP中的create方法與自動(dòng)令牌驗(yàn)證的實(shí)現(xiàn)方法,有著非常重要的用途,需要的朋友可以參考下2014-08-08
ThinkPHP獨(dú)立分組使用的注意事項(xiàng)
這篇文章主要介紹了ThinkPHP獨(dú)立分組使用的注意事項(xiàng),針對(duì)獨(dú)立分組的目錄結(jié)構(gòu)與分組之間的相互調(diào)用進(jìn)行了較為深入的分析,并指出了使用時(shí)的注意事項(xiàng),需要的朋友可以參考下2014-11-11
laravel項(xiàng)目利用twemproxy部署redis集群的完整步驟
Twemproxy是一個(gè)代理服務(wù)器,可以通過它減少M(fèi)emcached或Redis服務(wù)器所打開的連接數(shù)。下面這篇文章主要給大家介紹了關(guān)于laravel項(xiàng)目利用twemproxy部署redis集群的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-05-05
php實(shí)現(xiàn)數(shù)組篩選奇數(shù)和偶數(shù)示例
這篇文章主要介紹了php實(shí)現(xiàn)數(shù)組篩選奇數(shù)和偶數(shù)示例,需要的朋友可以參考下2014-04-04
PHP實(shí)現(xiàn)RTX發(fā)送消息提醒的實(shí)例代碼
本篇文章主要介紹了PHP實(shí)現(xiàn)RTX發(fā)送消息提醒的實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01

