通過接口下載文件,在當(dāng)前頁面下載各種格式的文件

【背 景】 一般我們想下載.txt .html等等屬于文本類型的文件,可以通過a標(biāo)簽的“download”屬性來直接下載到本地。但是當(dāng)遇到png等圖片類型和MP4等視頻類型的文件時,瀏覽器會默認(rèn)打開一個新頁面然后展示圖片或視頻類容,并不會直接下載到本地。如下:

<a download='myPicture.jpg'>


【實(shí) 現(xiàn)】這里有兩種實(shí)現(xiàn)支持所有類型文件下載的方法:

方法一: 后臺給我們直接返回url時,我們可以采用window.open( rul ) 的形式下載,如下寫法:

window.open("http://wx1.sinaimg.cn/large/aabb125aly1fjotz5bfbsj20dw0dwjsv.jpg'")

這種寫法瀏覽器會打開新的標(biāo)簽頁,然后再下載到本地。


方法二: 后臺給我們的是文件下載接口時,就采用form表弟的提交功能,代碼如下:

var id = '666';

try {

? ? ? ? const eleForm = document.createElement("form");//創(chuàng)建form

? ? ? ? eleForm.setAttribute("method", "get");

? ? ? ? eleForm.setAttribute(

? ? ? ? ? "action",

? ? ? ? ? "/api/file/download" + id

? ? ? ? );

? ? ? ? document.getElementsByTagName("body")[0].appendChild(eleForm);

? ? ? ? eleForm.submit();

? ? ? ? eleForm.remove();// 移除form

? ? ? } catch (e) {

? ? ? ? window.open("/api/file/download" + id);

? ? ? }

通過接口下載文件,可以實(shí)現(xiàn)在當(dāng)前頁面下載各種格式的文件!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,803評論 1 45
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 30,224評論 8 265
  • 文/愚叟艾思(衡陽) 詩傳道義觀今古,曲頌文明翰墨香。 海闊風(fēng)輕魚眷戀,天高云淡鳥飛翔。 選留名句含深意,化作新聲...
    艾思閱讀 590評論 7 24
  • 昨天是國慶假期的最后一天,兒子國慶節(jié)完成一道菜的作業(yè)還未做,小家伙很積極,說是要做香蔥雞蛋餅,也是平時他最...
    清言華語閱讀 329評論 0 0
  • 回到現(xiàn)實(shí) “別的就不說了,我認(rèn)為我們的智力測試肯定達(dá)不到130啊。別想些有的沒的了?!碧煊顡u著頭,說玉必實(shí)在是杞人...
    花京體驗(yàn)閱讀 303評論 0 0

友情鏈接更多精彩內(nèi)容