首页 前端知识 jquery接收后端文件流实现下载功能

jquery接收后端文件流实现下载功能

2024-06-05 13:06:45 前端知识 前端哥 149 370 我要收藏
$.ajax({
              url:urlSave,
              type:'POST',
              cache: false,
              xhr: function () {
                var xhr = new XMLHttpRequest();
                xhr.onreadystatechange = function () {
                  if (xhr.readyState == 2) {
                    if (xhr.status == 200) {
                      xhr.responseType = "blob";
                    } else {
                      xhr.responseType = "text";
                    }
                  }
                };
                return xhr;
              },
              headers: {
                "Content-Type": "application/json",
              },
              data:obj,
              success:function(res){
                download(res,fileNmae)
              },
            })

ajax部分

        function download(data, filename, mime, bom) {
          var blobData = typeof bom !== "undefined" ? [bom, data] : [data];
          var blob = new Blob(blobData, { type: mime || "application/octet-stream" });
          if (typeof window.navigator.msSaveBlob !== "undefined") {
            // IE workaround for "HTML7007: One or more blob URLs were
            // revoked by closing the blob for which they were created.
            // These URLs will no longer resolve as the data backing
            // the URL has been freed."
            window.navigator.msSaveBlob(blob, filename);
          } else {
            var blobURL =
              window.URL && window.URL.createObjectURL
                ? window.URL.createObjectURL(blob)
                : window.webkitURL.createObjectURL(blob);
            var tempLink = document.createElement("a");
            tempLink.style.display = "none";
            tempLink.href = blobURL;
            tempLink.setAttribute("download", filename);

            // Safari thinks _blank anchor are pop ups. We only want to set _blank
            // target if the browser does not support the HTML5 download attribute.
            // This allows you to download files in desktop safari if pop up blocking
            // is enabled.
            if (typeof tempLink.download === "undefined") {
              tempLink.setAttribute("target", "_blank");
            }

            document.body.appendChild(tempLink);
            tempLink.click();
            // Fixes "webkit blob resource error 1"
            setTimeout(function () {
              document.body.removeChild(tempLink);
              window.URL.revokeObjectURL(blobURL);
            }, 200);
          }
        };

blob部分

转载请注明出处或者链接地址:https://www.qianduange.cn//article/10867.html
标签
评论
发布的文章

基于Vue2的ofd文件预览

2024-06-10 11:06:28

网页快速置灰效果

2024-06-10 11:06:17

HTML5 CSS——Day6

2024-06-10 11:06:11

HTML5 CSS3面试题整理

2024-05-05 22:05:21

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!