### 下面就講解文件下載的實例,具體就看下面的代碼
~~~
<?php
//演示下載一個文件
$file_name="http.php";
//打開文件
if(!file_exists($file_name)){
echo "文件不存在 <br/>";
exit();
}
$fp=fopen($file_name,"r");
//獲取文件的大小
$file_size=filesize($file_name);
//返回的文件
header("Content-type: application/octet-stream");
//按照字節大小返回
header("Accept-Ranges: bytes");
//返回文件的大小
header("Accept-Length: $file_size");
//這里是客戶端彈出的對話框,對應的文件名
header("Content-Disposition: attachment;filename=".$file_name);
//向客戶端返回數據
$buffer=1024;
//為了下載的安全,我們最好做一個文件字節讀取的計數器
$file_count=0;
//這句話用于判斷文件是否結束
while(!feof($fp)&&($file_size-$file_count >0)){
$file_data=fread($fp,$buffer);
//統計讀了多少字節
$file_count += $buffer;
//把部分數據回送給瀏覽器;
echo $file_data;
}
//關閉文件
fclose($fp);
?>
~~~
### 但是當文件名是中文時,為了放在下面是顯示亂碼的問題,需要在打開文件前對,文件名進行轉碼
~~~
$file_name="哈嘍.php";
//原因 PHP文件函數,比較古老,需要對中文進行轉碼
$file_name=iconv("utf-8","gb2312",$file_name);
~~~
- 前言
- HTML(第一天)
- HTML(第二天)
- DIV+CSS(第一天)
- DIV+CSS(第二天)
- DIV+CSS(第三天)
- DIV+CSS(第四天)
- PHP開發環境配置說明
- PHP基礎數據類型及運算符介紹
- 走進PHP函數
- 走進位運算
- 走進數組及相關數組函數
- 面向對象的編程(類與對象)
- 面向對象的編程(類成員方法用法)
- 構造方法,析構方法
- static,global用法
- 靜態方法
- 面向對象的編程方法
- 接口方法
- 接口VS繼承、final、const
- 錯誤及異常處理機制、錯誤日志
- HTTP協議深度剖析
- 文件下載
- PHP數據庫編程
- 數據庫編程(2)
- 超全局變量
- Zend studio 開發環境入門
- 雇員管理系統(1)
- 雇員管理系統(2)
- 會話技術(cookie session)
- 會話技術 session場景使用介紹!
- PHP.in中session和cookie的配置說明
- PHP文件編程
- 報表及繪圖技術
- 報表及繪圖技術(jpgraph庫使用,Linux安裝及配置說明)
- XML基本語法及DTD介紹
- XML編程(Dom技術)
- XML編程(Xpath技術,simpleXml技術)基礎入門
- 網上支付平臺PHP版本
- javascript基礎入門