前端处理带请求头(token)的文件下载

前端处理带请求头(token)的文件下载

#前端处理文件下载

前端处理文件下载,一般直接通过a标签,或者form表单下载,但是现在需求是要请求头部带上token值,这两种方法就不合适了,所以通过blob来实现流文件下载。
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
生成文件导入导出的前端页面代码可以使用以下代码片段作为参考: ```javascript // 导入文件请求 const importFile = (file, token) => { return axios.post('/api/import', file, { headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'multipart/form-data' } }) } // 导出文件请求 const exportFile = (params, token) => { return axios.get('/api/export', { params: params, headers: { 'Authorization': `Bearer ${token}` }, responseType: 'blob' }) } // 文件上传组件 <template> <div> <input type="file" ref="fileInput" @change="importFile"> </div> </template> <script> import axios from 'axios' export default { methods: { importFile() { const file = this.$refs.fileInput.files[0] const token = 'your-token-here' importFile(file, token) .then(response => { // 处理导入结果 }) .catch(error => { // 处理导入错误 }) } } } </script> // 文件导出组件 <template> <div> <button @click="exportFile">导出文件</button> </div> </template> <script> import axios from 'axios' export default { methods: { exportFile() { const params = { // 导出文件的参数 } const token = 'your-token-here' exportFile(params, token) .then(response => { const blob = new Blob([response.data]) const filename = `${params.filename}.${params.format}` const url = window.URL.createObjectURL(blob) const link = document.createElement('a') link.href = url link.download = filename link.click() window.URL.revokeObjectURL(url) }) .catch(error => { // 处理导出错误 }) } } } </script> ``` 在这里,我们使用了 Axios 库来发送导入和导出文件的请求。在导入请求中,我们使用了 `multipart/form-data` 类型的请求头,并将 token 放在了 `Authorization` 请求头中。在导出请求中,我们使用了 `blob` 类型的响应类型,并且同样将 token 放在了 `Authorization` 请求头中。 在前端页面中,我们分别创建了一个文件上传组件和一个文件导出组件。在上传组件中,我们监听了文件选择框的 `change` 事件,并在选择文件后调用了 `importFile` 方法来发送导入请求。在导出组件中,我们创建了一个按钮,并在点击按钮时调用了 `exportFile` 方法来发送导出请求。在导出请求的成功回调中,我们使用了 `Blob` 和 `URL.createObjectURL` 方法来创建一个下载链接,并自动下载导出的文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值