Django下載文件

繼上文的上傳后,終于到了下載模塊,因?yàn)橹皇呛?jiǎn)單實(shí)現(xiàn)低淡,所以就不存在那么多復(fù)雜的流程了,也沒(méi)有自己定義模板什么的莽龟,之前一直糾結(jié)于怎么實(shí)現(xiàn)自動(dòng)彈窗讓你選擇文件存儲(chǔ)路徑,后來(lái)才了解到那是根據(jù)瀏覽器支持情況而定锨天,一直糾結(jié)于后臺(tái)實(shí)現(xiàn)毯盈,因?yàn)橹暗膒ython代碼塊包括阿里云sdk里的支持都是要先定義好路徑和文件名然后直接下載的,話不多說(shuō)病袄,上代碼

表單

屬性設(shè)置基本和前文一樣搂赋,我在html里面的audio標(biāo)簽里面添加了id屬性,其實(shí)必要性也不大益缠,不過(guò)可以增加代碼可讀性嘛脑奠,跟這里的下載操作關(guān)聯(lián)不大我就沒(méi)有嵌代碼了,因?yàn)槲业囊魳?lè)播放器是js實(shí)現(xiàn)的幅慌,所以這里用requests庫(kù)獲取到當(dāng)前audio里面的src屬性值即可宋欺,主要就是獲取到src值供后端操作

<form enctype="multipart/form-data" action="{% url 'download' %}?from={{ request.get_full_path }}" method="post">
                {% csrf_token %}
                <input type="submit" value="下載">
 </form>

views.py

無(wú)關(guān)操作就隱去了,主要就是打開(kāi)要下載的文件,我是從src獲取到文件名從而獲取到文件對(duì)象齿诞,此處設(shè)計(jì)爬蟲(chóng)與oss的相關(guān)細(xì)節(jié)不做贅述酸休,反正就是讀取待下載文件,然后設(shè)定一些響應(yīng)屬性祷杈,filename那里可以指定默認(rèn)文件名雨席,返回響應(yīng)即可,百度應(yīng)該會(huì)給出基本的三大類(lèi)型的django文件下載方式吠式,這種是最推薦的,支持大小文件而且避免了緩存等問(wèn)題的異常抽米,大家可以去嘗試一下

def download_file(request):
    referer = request.META.get('HTTP_REFERER', reverse('home'))
    #url = "http://127.0.0.1:8000/"
    #html = getHTMLText(url)
    #src = get_data(html)
    #file_name = unquote(src, 'utf-8').split('com/')[1]
    #os.chdir(‘../static/cloud’)
    #bucket.get_object_to_file(file_name, file_name)

    file = open(file_name, 'rb')
    response = FileResponse(file)
    response['Content-Type'] = 'application/octet-stream'
    response['Content-Disposition'] = 'attachment;filename="example.tar.gz"'
    return response
    #return redirect(request.GET.get('from', reverse('home')))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末特占,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子云茸,更是在濱河造成了極大的恐慌是目,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件标捺,死亡現(xiàn)場(chǎng)離奇詭異懊纳,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)亡容,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)嗤疯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人闺兢,你說(shuō)我怎么就攤上這事茂缚。” “怎么了屋谭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵脚囊,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我桐磁,道長(zhǎng)悔耘,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任我擂,我火速辦了婚禮衬以,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘校摩。我一直安慰自己泄鹏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布秧耗。 她就那樣靜靜地躺著备籽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上车猬,一...
    開(kāi)封第一講書(shū)人閱讀 51,521評(píng)論 1 304
  • 那天霉猛,我揣著相機(jī)與錄音,去河邊找鬼珠闰。 笑死惜浅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伏嗜。 我是一名探鬼主播坛悉,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼承绸!你這毒婦竟也來(lái)了裸影?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤军熏,失蹤者是張志新(化名)和其女友劉穎轩猩,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體荡澎,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡均践,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了摩幔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彤委。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖或衡,靈堂內(nèi)的尸體忽然破棺而出葫慎,到底是詐尸還是另有隱情,我是刑警寧澤薇宠,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布偷办,位于F島的核電站,受9級(jí)特大地震影響澄港,放射性物質(zhì)發(fā)生泄漏椒涯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一回梧、第九天 我趴在偏房一處隱蔽的房頂上張望废岂。 院中可真熱鬧,春花似錦狱意、人聲如沸湖苞。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)财骨。三九已至镐作,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間隆箩,已是汗流浹背该贾。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捌臊,地道東北人杨蛋。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像理澎,于是被迫代替她去往敵國(guó)和親逞力。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理糠爬,服務(wù)發(fā)現(xiàn)寇荧,斷路器,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,101評(píng)論 1 32
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 29,386評(píng)論 8 265
  • 1秩铆、通過(guò)CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明先生_X自主閱讀 15,980評(píng)論 3 119
  • 使用微信的時(shí)候,總會(huì)經(jīng)常遇到過(guò)這么尷尬的一件事情灯变,當(dāng)我們?cè)跒g覽微信公眾號(hào)里面的文章時(shí)殴玛,突然收到新的微信消息,然而這...
    二斤丸子閱讀 1,109評(píng)論 0 0