PHP安全下載文件的方法
本文實(shí)例講述了PHP安全下載文件的方法。分享給大家供大家參考,具體如下:
<?php header('Content-Type:text/html;Charset=utf-8'); define('ROOT_PATH', dirname(__FILE__)); /** * 下載文件 * @param string $file_path 絕對(duì)路徑 */ function downFile($file_path) { //判斷文件是否存在 $file_path = iconv('utf-8', 'gb2312', $file_path); //對(duì)可能出現(xiàn)的中文名稱進(jìn)行轉(zhuǎn)碼 if (!file_exists($file_path)) { exit('文件不存在!'); } $file_name = basename($file_path); //獲取文件名稱 $file_size = filesize($file_path); //獲取文件大小 $fp = fopen($file_path, 'r'); //以只讀的方式打開文件 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; //判斷文件是否結(jié)束 while (!feof($fp) && ($file_size-$file_count>0)) { $file_data = fread($fp, $buffer); $file_count += $buffer; echo $file_data; } fclose($fp); //關(guān)閉文件 } downFile(ROOT_PATH . '/down/Sunset.jpg'); ?>
說(shuō)明:文件名稱可以接受中文名稱。文件格式為 utf-8。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php curl用法總結(jié)》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語(yǔ)法入門教程》、《php操作office文檔技巧總結(jié)(包括word,excel,access,ppt)》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php實(shí)現(xiàn)SAE上使用storage上傳與下載文件的方法
- PHP實(shí)現(xiàn)遠(yuǎn)程下載文件到本地
- php實(shí)現(xiàn)圖片文件與下載文件防盜鏈的方法
- 兼容ie6瀏覽器的php下載文件代碼分享
- php下載文件源代碼(強(qiáng)制任意文件格式下載)
- PHP 下載文件時(shí)自動(dòng)添加bom頭的方法實(shí)例
- 解析如何在PHP下載文件名中解決亂碼的問題
- 基于php下載文件的詳解
- php下載文件的代碼示例
- php中強(qiáng)制下載文件的代碼(解決了IE下中文文件名亂碼問題)
- php做下載文件的實(shí)現(xiàn)代碼及文件名中亂碼解決方法
相關(guān)文章
phpmyadmin導(dǎo)入(import)文件限制的解決辦法
最近一次在用phpmyadmin備份mysql數(shù)據(jù)庫(kù)時(shí),沒有分段大小,一下子備份了一百多M的sql數(shù)據(jù);在導(dǎo)入的時(shí)候,提示超過2M導(dǎo)入限制,前一段時(shí)間,遇到過一次,后來(lái)利用網(wǎng)站后臺(tái)的自動(dòng)分段處理了;這次又遇到這個(gè)問題,決心解決一下。2009-12-12php根據(jù)日期或時(shí)間戳獲取星座信息和生肖等信息
這篇文章主要介紹了php根據(jù)日期或時(shí)間戳獲取星座信息和生肖等信息的相關(guān)資料,需要的朋友可以參考下2015-10-10