91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Javascript前端下載后臺傳來的文件流案例分析

發布時間:2020-08-19 09:55:52 來源:億速云 閱讀:241 作者:小新 欄目:開發技術

Javascript前端下載后臺傳來的文件流案例分析?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

前臺請求數據:

url: '/app/downloadApp',
 method: 'get',
 responseType: 'blob',
 params: data

設置接收參數格式為responseType: ‘blob',

downloadFile(res, fileName) {
   if (!res) {
    return
   }
   if (window.navigator.msSaveBlob) { // IE以及IE內核的瀏覽器
    try {
     window.navigator.msSaveBlob(res, fileName) // res為接口返回數據,這里請求的時候已經處理了,如果沒處理需要在此之前自行處理var data = new Blob([res.data]) 注意這里需要是數組形式的,fileName就是下載之后的文件名
     // window.navigator.msSaveOrOpenBlob(res, fileName); //此方法類似上面的方法,區別可自行百度
    } catch (e) {
     console.log(e)
    }
   } else {
    let url = window.URL.createObjectURL(new Blob([res]))
    let link = document.createElement('a')
    link.style.display = 'none'
    link.href = url
    link.setAttribute('download', fileName)// 文件名
    document.body.appendChild(link)
    link.click()
    document.body.removeChild(link) // 下載完成移除元素
    window.URL.revokeObjectURL(url) // 釋放掉blob對象
   }
 },
 download(){
   var data = {
    appId:this.appId
   }
   downloadAppAjax(data).then(res => {
     const filename = decodeURI(res.headers['content-disposition'].split(';')[1].split('=')[1]);
     console.log(filename)
     this.downloadFile(res.data,filename)
   })
  }

這里的downloadAppAjax調用后臺接口,請求數據,獲取后臺返回的數據沒有文件名,最后發現在header Content-Disposition屬性里 attachment;filename=app.jpg

所以我們要實現下載自動重命名就需要拿出filename,這里我們使用decodeURI對Content-Disposition屬性值進行解碼,拿到filename:

decodeURI(res.headers['content-disposition'].split(';')[1].split('=')[1]);

拿到文件流和文件名后 接收文件流并創建地址

let url =window.URL.createObjectURL(new Blob([res]))

接著利用a標簽進行下載即可。

感謝各位的閱讀!看完上述內容,你們對Javascript前端下載后臺傳來的文件流案例分析大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郑州市| 霍山县| 盐亭县| 犍为县| 桐柏县| 汝南县| 衡山县| 镇赉县| 盱眙县| 莒南县| 图木舒克市| 通城县| 安达市| 阿拉尔市| 乐至县| 斗六市| 宿州市| 恩平市| 秦安县| 攀枝花市| 江孜县| 上思县| 临洮县| 息烽县| 云梦县| 孟州市| 大连市| 明星| 钦州市| 清丰县| 图木舒克市| 荥经县| 澄迈县| 凤台县| 临夏县| 汤原县| 永平县| 永宁县| 海林市| 河南省| 揭阳市|