后端返回的world文件链接,前端要怎么才能下载到本地?

后端现在返回一个地址,在浏览器直接打开是可以自己下载的,但是用jsIE下载怎么写?后端说用iframe是什么意思?

阅读 4.6k
2 个回答

文档连接的话

在接口的回调函数里面加上下面代码

var a = document.createElement('a');
a.href = url;
a.download = 'test.word';
a.click();

如果返回的是个文档的话,可以用fetch接收并下载

 fetch("/api", { credentials: 'include' }).then(x => x.blob()).then(x => {
            var a = document.createElement('a');
            var url = window.URL.createObjectURL(x);   // 获取 blob 本地文件连接 (blob 为纯二进制对象,不能够直接保存到磁盘上)
            a.href = url;
            a.download = 'test.pdf';
            a.click();
            window.URL.revokeObjectURL(url);
        })

通过iframe标签中的src属性可以下载文件,src即为后台返给前端的url,具体的写法如下:

               
function downloadFile(url) {   
        try{ 
            var elemIF = document.createElement("iframe");   
            elemIF.src = url;   
            elemIF.style.display = "none";   
            document.body.appendChild(elemIF);   
        }catch(e){ 
        } 
    }
<input type="button" value="进入1" onClick = "downloadFile('http://??')">
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题