Comments (1)
要么直接在新标签打开文件地址,浏览器会自动下载。
如果你要用api请求文件返回数据流,需要js来处理生成文件,具体参考:
import axios from 'axios'
import { getToken } from '@/utils/auth'
const mimeMap = {
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
zip: 'application/zip'
}
const baseUrl = process.env.VUE_APP_BASE_API
export function downLoadZip(str, filename) {
var url = baseUrl + str
axios({
method: 'get',
url: url,
responseType: 'blob',
headers: { 'Authorization': 'Bearer ' + getToken() }
}).then(res => {
if(filename){
res.headers['content-disposition'] = 'attachment; filename='+filename;
}
resolveBlob(res, mimeMap.zip)
})
}
/**
* 解析blob响应内容并下载
* @param {*} res blob响应内容
* @param {String} mimeType MIME类型
*/
export function resolveBlob(res, mimeType) {
const aLink = document.createElement('a')
var blob = new Blob([res.data], { type: mimeType })
// //从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名;
var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*')
var contentDisposition = decodeURI(res.headers['content-disposition']||res.headers['Content-Disposition'])
var result = patt.exec(contentDisposition)
var fileName = result[1]
fileName = fileName.replace(/\"/g, '')
aLink.href = URL.createObjectURL(blob)
aLink.setAttribute('download', fileName) // 设置下载文件名称
document.body.appendChild(aLink)
aLink.click()
document.body.appendChild(aLink)
}
from gfast.
Related Issues (20)
- Add a security policy
- 忍不了拼写错误, 提个bug,验证码
- app\commom\service\casbin.go的中加载策略重复 HOT 1
- 为啥去掉gtoken,自己再写一套gftoken呢? HOT 1
- v3版本go 1.18下安装报错
- vue3 cnpm run dev 报错 HOT 3
- http://localhost:8888/#/login?redirect=/¶ms={}出现了空白 HOT 6
- api路由的疑问 HOT 1
- 建议生成的代码里面可以增加批量导入导出功能
- 建议搞个用户整合LDAP功能
- 旧 gf 基础库引起的 绑定0.0.0.0:8080 错误 HOT 2
- 希望升级gf最新版本,谢谢 HOT 1
- 期待os-v3文档跟上节奏.... HOT 1
- 运行后端main.go时报错 HOT 1
- 为啥子我搭建好的系统菜单栏没有字 HOT 2
- v3.2的代码生成和定时器被阉割了吗? HOT 1
- 仓库代码中无文档中的upload.go代码
- 请问 在os-v3.2中怎么没有找到接口role/dataScope的实现呢?
- gofast v1.0版本,参数校验不生效
- run方法接口返回如何自定义code和message HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gfast.