国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

php實(shí)現(xiàn)文件下載功能(支持中文)

wangym / 3526人閱讀

摘要:?jiǎn)栴}說(shuō)明文件下載,通常有一種最為簡(jiǎn)單的方法,那就是將直接指向服務(wù)器上文件的所在位置。

問(wèn)題說(shuō)明

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

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

無(wú)法禁止非法請(qǐng)求來(lái)源,無(wú)法對(duì)文件下載請(qǐng)求做安全驗(yàn)證

解決方案 一、將文件下載請(qǐng)求映射到后端程序url 借助http服務(wù)器(apache/nginx)實(shí)現(xiàn)映射功能

這里以apache為例進(jìn)行說(shuō)明
借助apache的rewrite模塊,配置rewrite規(guī)則。(關(guān)于如何開(kāi)啟rewrite模塊,網(wǎng)上很多資源,這里不再贅訴)
在項(xiàng)目根目錄下創(chuàng)建.htaccess文件,寫(xiě)入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ě)具體的文件下載邏輯 項(xiàng)目目錄

以本地項(xiàng)目為例,用戶(hù)需要下載的zip文件,放在當(dāng)前項(xiàng)目的temp目錄下

示例

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


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

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

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

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

下載文件

打開(kāi)瀏覽器,訪問(wèn) http://127.0.0.1/rewrite/尷尬.zip 文件便開(kāi)始下載了

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/25752.html

相關(guān)文章

  • sphinx中文索引實(shí)現(xiàn)中文檢索

    摘要:一介紹與好處介紹本身是一個(gè)中文檢索索引技術(shù)索引主鍵唯一普通全文是俄羅斯人開(kāi)發(fā)一款速度效率非常高的索引技術(shù)是來(lái)替代全文索引的本身的全文索引技術(shù)特性表現(xiàn)一般,一般數(shù)據(jù)庫(kù)使用全文索引都不是使用本身的,都需要借助第方索引技術(shù)支持,搜索引擎百 一.sphinx介紹與好處 介紹 sphinx本身是一個(gè)中文檢索索引技術(shù) mysql索引: 主鍵、唯一、普通、全文(match/agaisnt)sphi...

    SoapEye 評(píng)論0 收藏0
  • 教程、學(xué)習(xí)和網(wǎng)址

    摘要:語(yǔ)言寫(xiě)的算法教程,看起來(lái)比較草根和接地氣,推薦學(xué)習(xí)。語(yǔ)言圣經(jīng)中文版語(yǔ)言高級(jí)編程中文譯本,中文正式名入門(mén)指南為互聯(lián)網(wǎng)人打造的中文版。 這是一些本人網(wǎng)上搜集到的一些好的學(xué)習(xí)教程、開(kāi)發(fā)資源、和個(gè)人有用的鏈接,以作備份和分享之用。 持續(xù)更新中。。。 編程語(yǔ)言 C 語(yǔ)言資源大全中文版https://github.com/jobbole/aw... ECMAScript 6 入門(mén)http://es...

    lylwyy2016 評(píng)論0 收藏0
  • 教程、學(xué)習(xí)和網(wǎng)址

    摘要:語(yǔ)言寫(xiě)的算法教程,看起來(lái)比較草根和接地氣,推薦學(xué)習(xí)。語(yǔ)言圣經(jīng)中文版語(yǔ)言高級(jí)編程中文譯本,中文正式名入門(mén)指南為互聯(lián)網(wǎng)人打造的中文版。 這是一些本人網(wǎng)上搜集到的一些好的學(xué)習(xí)教程、開(kāi)發(fā)資源、和個(gè)人有用的鏈接,以作備份和分享之用。 持續(xù)更新中。。。 編程語(yǔ)言 C 語(yǔ)言資源大全中文版https://github.com/jobbole/aw... ECMAScript 6 入門(mén)http://es...

    leoperfect 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<