真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php怎么實(shí)現(xiàn)下載功能

小編給大家分享一下php怎么實(shí)現(xiàn)下載功能,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

涇源ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

php實(shí)現(xiàn)下載功能的方法:首先將文件下載請(qǐng)求映射到后端程序url;然后編寫具體的文件下載邏輯;最后將文件路徑轉(zhuǎn)換成gbk編碼即可實(shí)現(xiàn)下載文件功能。

問題說明

文件下載,通常有一種最為簡(jiǎn)單的方法,那就是將url直接指向服務(wù)器上文件的所在位置。但是這個(gè)方法存在很大的安全隱患。

1.暴露了服務(wù)器文件目錄結(jié)構(gòu)

2.無法禁止非法請(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]

將所有以rar/zip結(jié)尾的url,映射給download.php文件(這里為了方便直接映射到了一個(gè)php腳本中,如果是使用框架,那就映射到具體的控制器中的某個(gè)方法!例如:index.php?c=home&a=download)

二、編寫具體的文件下載邏輯

項(xiàng)目目錄

以本地項(xiàng)目為例,用戶需要下載的zip文件,放在當(dāng)前項(xiàng)目的temp目錄下
php怎么實(shí)現(xiàn)下載功能

示例

直接上代碼,代碼中有詳細(xì)注釋

這里只是做了一個(gè)示例(只包括核心功能),為了方便說明直接以GET方式從url中獲取用戶想要下載的文件名稱

注意以下兩行代碼(為了能夠下載中文名稱的文件)

$filePath = iconv('UTF-8','gbk',$filePath);
header('Content-type:application/octet-stream; charset=utf-8');

如果用戶需要下載的是中文名稱的文件。則需要將文件路徑轉(zhuǎn)換成gbk編碼,否則會(huì)出現(xiàn) 文件不存在 之類的錯(cuò)誤。header中設(shè)置utf8編碼,也是同樣的道理

下載文件

打開瀏覽器,訪問 http://127.0.0.1/rewrite/尷尬.zip    文件便開始下載了。

以上是“php怎么實(shí)現(xiàn)下載功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)站題目:php怎么實(shí)現(xiàn)下載功能
轉(zhuǎn)載來于:http://weahome.cn/article/ggspij.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部