二進制Blob大文件的下載解決方案

參考代碼如下:

_downFile: function (opts) {
    // 添加遮罩
    _addShade()
    var xhr = new XMLHttpRequest()
    xhr.open(opts.method || 'POST', opts.url, true)
    xhr.responseType = 'blob'
    xhr.setRequestHeader('Content-Type', 'application/json')

    var formData = new FormData()
    for (var i in opts.data) {
      formData.append(i, opts.data[i])
    }
    // 定義請求完成的處理函數(shù),請求前也可以增加加載框/禁用下載按鈕邏輯
    xhr.onload = function () {
      // 請求完成
      if (this.status === 200) {
        var blob = this.response
        var a = document.createElement('a')
        var objectUrl = window.URL.createObjectURL(blob)
        a.download = opts.nofix ? opts.fileName : opts.fileName + (opts.postfix || '.xlsx')
        a.href = objectUrl
        $('body').append(a)
        a.click()
        window.URL.revokeObjectURL(objectUrl)
        $(a).remove()
        _removeShade()
      }
    }
    // 發(fā)送ajax請求
    xhr.send(JSON.stringify(opts.data))
  }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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