IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue中文件下载功能通过与后端对接接口实现 -> 正文阅读

[JavaScript知识库]vue中文件下载功能通过与后端对接接口实现

实现目标:点击下载按钮,浏览器下方出现下载的文件,word文件将下载为word文件格式,不会进行pdf的转换。

实现效果:

实现方法:

1.后端swagger中:

?2.api的js文件中:

export function planDownloadById(param) {
    return request({
        url: '/xxxx/xxxx/download',
        method: 'post',
        data: param,
        responseType: 'blob', // 必须要写
        headers: {
            'Content-Type': 'application/json;charset=UTF-8'
        }
    });
}

3.vue文件中:

引入api文件中的下载接口

import { planDownloadById } from '@/api/xxxx/index'

template中:

<template slot-scope="scope">
						<el-button @click="downloadPlan(scope.row)" type="text" size="small" style="margin-right: 20px">
							<i class="el-icon-download"></i>
							下载
						</el-button>
					</template>

methods中:

downloadPlan(row) {
			// 下载文件的名称
			let filePathArray = row.filePath.split('/')
			let fileName = filePathArray[filePathArray.length - 1]
			// 参数拼接
			let param = new FormData()
			param.append('id', row.id)
			// 调用接口
			planDownloadById(param).then((res) => {
				if (res.status == 200) {
					const link = document.createElement('a') // 创建a标签
					const blo = new Blob([res.data], { type: res.data.type }) // 设置下载格式
					link.style.display = 'none'
					const url = window.URL.createObjectURL(blo)
					link.href = url
					link.setAttribute('download', fileName)
					document.body.appendChild(link)
					link.click() // 触发下载
					window.URL.revokeObjectURL(url) // 释放掉blob对象
					document.body.removeChild(link)
					this.refreshData() // 刷新页面
				} else {
					this.$message.warning('请稍后再试')
				}
			})
		},

这样就实现了文件的下载功能。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:31:32  更:2022-05-09 12:33:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:55:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码