相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡(jiǎn)單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說明
- thinkPHP5框架實(shí)現(xiàn)分頁(yè)查詢功能的方法示例
- PHP中單雙號(hào)與變量
- PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析
- Laravel ORM對(duì)Model::find方法進(jìn)行緩存示例詳解
- PHP讀寫文件高并發(fā)處理操作實(shí)例詳解
- 【CLI】利用Curl下載文件實(shí)時(shí)進(jìn)度條顯示的實(shí)現(xiàn)
php實(shí)現(xiàn)支持中文的文件下載功能示例
前言
本文主要給大家介紹了關(guān)于php實(shí)現(xiàn)支持中文的文件下載功能的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。
問題說明
文件下載,通常有一種最為簡(jiǎn)單的方法,那就是將url直接指向服務(wù)器上文件的所在位置。但是這個(gè)方法存在很大的安全隱患。
- 暴露了服務(wù)器文件目錄結(jié)構(gòu)
- 無法禁止非法請(qǐng)求來源,無法對(duì)文件下載請(qǐng)求做安全驗(yàn)證
解決方案
一、將文件下載請(qǐng)求映射到后端程序url
借助http服務(wù)器(apache/nginx)實(shí)現(xiàn)映射功能
這里以apache為例進(jìn)行說明
借助apache的rewrite模塊,配置rewrite規(guī)則。(關(guān)于如何開啟rewrite模塊,網(wǎng)上很多資源,這里不再贅訴)
在項(xiàng)目根目錄下創(chuàng)建.htaccess文件,寫入rewrite規(guī)則
RewriteEngine on #將所有以rar/zip結(jié)尾的url,映射給download.php文件 RewriteRule (.*\.(rar|zip))$ download.php?file=$1 [NC]