vue文件下载(文本、图片、文档)

在项目中我们会遇到一些关于下载图片、文档、文本的场景

1、点击事件download创建a标签,处理数据中的url转为blod格式,fetch请求将普通的url连接当做参数请求,第一个then里面返回res.blob()格式(也可以改为text,得到的就是一个text字符串,但是要做一个json解析,所以极少用text格式,res.text()、res.json())

2、fetch请求不过多去说。

3、第二个then返回blob对象,通过URL.createObjectURL(blob)转成blob地址赋值给刚创建a的href,a标签的download设置文件名,然后执行a标签的点击触发 就大功告成!

4、话不多说 ,上代码复制粘贴过去 ,下载的点击事件里面数据自己根据项目

                 //我的item数据格式 
                 //   {
                 //     name: "文档.xlsx",
                 //     fileurls: "https://xxxx.cn/xxx/xxx/1111.xlsx",
                 //     fsize: "0.09",
                 //     uid: 1234567787654
                 //    }
            download(item){ //下载文件

            let a = document.createElement('a')           // 创建a标签

            let url = item.fileurls                             // 完整图片地址url连接  例如https://xxxx.cn/xxx/xxx/xxxx.xlsx   或者https://xxxx.cn/xxx/xxx/xxxx.png

            fetch(url).then(res =>res.blob()).then(blob => {           

                a.href = URL.createObjectURL(blob)                //blob地址

                a.download = item.name                     // 下载文件的名字

                a.click()

            })

        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容