php實現(xiàn)文件下載實例分享
更新時間:2014年06月02日 16:35:47 作者:
php實現(xiàn)對文件的下載需要了解一定的http協(xié)議基礎(chǔ),php實現(xiàn)下載用到四條http協(xié)議的信息,用header進(jìn)行會寫處理
舉一個案例:
復(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");
//會寫用到的四條http協(xié)議信息
header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");//可以忽略
header("Content-Length: ".$file_size);//原文這里是Accept-Length經(jīng)查閱http協(xié)議無此項
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)用這個函數(shù)傳入文件名就能對文件實現(xiàn)下載,不過要注意修改$file_path
相關(guān)文章
PHP遞歸獲取目錄內(nèi)所有文件的實現(xiàn)方法
下面小編就為大家?guī)硪黄狿HP遞歸獲取目錄內(nèi)所有文件的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11
在IIS7.0下面配置PHP 5.3.2運行環(huán)境的方法
最近心血來潮,想學(xué)習(xí)一下php,既然想學(xué)習(xí)了就得需要搭環(huán)境。在網(wǎng)上找來找去都是說IIS5.0或者6.0的配置。真是看得云里霧里的,這樣直接影響了我的判斷力。現(xiàn)特意寫下來在IIS7.0下面如何進(jìn)行配置PHP。2010-04-04
laravel項目利用twemproxy部署redis集群的完整步驟
Twemproxy是一個代理服務(wù)器,可以通過它減少Memcached或Redis服務(wù)器所打開的連接數(shù)。下面這篇文章主要給大家介紹了關(guān)于laravel項目利用twemproxy部署redis集群的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-05-05
php實現(xiàn)數(shù)組篩選奇數(shù)和偶數(shù)示例
這篇文章主要介紹了php實現(xiàn)數(shù)組篩選奇數(shù)和偶數(shù)示例,需要的朋友可以參考下2014-04-04

