【Java】java | vue | 魔改若依 | post请求导出

ops/2025/2/22 6:56:01/

一、概述

        导出通过body传值,若依通过params传值,不满足需要,魔改一波。

二、看代码

1、js路径

src/utils/request.js

2、增加函数

// 通用下载方法
export function downloadByBody(url, params, filename, config) {downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })return service.post(url, params, {headers: { 'Content-Type': 'application/x-www-form-urlencoded' },responseType: 'blob',...config}).then(async (data) => {console.log(164, data.type, resText, rspObj)if (data.type === 'application/json') {const resText = await data.text();const rspObj = JSON.parse(resText);const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']Message.error(errMsg);} else {const blob = new Blob([data])saveAs(blob, filename)}downloadLoadingInstance.close();}).catch((r) => {console.error(r)Message.error('下载文件出现错误,请联系管理员!')downloadLoadingInstance.close();})
}

3、vue页面调用

import { downloadByBody } from '@/utils/request'
downloadByBody(url, body, `下载信息_${this.getDateStr()}.zip`)

4、Java接收参数

@PostMapping("/app/v2/export")public void exportUserV2(@RequestBody ExportUserParam exportUserParam, HttpServletRequest request, HttpServletResponse response) {}

5、Java导出

/*** 下载文件* @param fileName 文件名,无路径* @param path* @param response*/public static void download(String fileName, Path path, HttpServletResponse response) {try {log.info("文件下载,fileName:{}", fileName);response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);// 下载后文件中的汉字变成下划线(_)的问题解决String name = new String(fileName.getBytes("utf-8"), "iso-8859-1");response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + name + "\"");Files.copy(path, response.getOutputStream());} catch (Exception e) {throw BizException.error("文件下载失败");}}/*** 下载文件* @param file* @param response*/public static void download(File file, HttpServletResponse response) {try {Path filePath = Paths.get(file.getAbsolutePath()).toAbsolutePath().normalize();download(file.getName(), filePath, response);} catch (Exception e) {throw BizException.error("文件下载失败");}}

~~


http://www.ppmy.cn/ops/160448.html

相关文章

android 网络防护 手机网络安全怎么防

手机也会受到网络攻击吗?是的。没错。手机目前已经成为攻击者最爱的目标。不只是它更容易受到攻击,而是他缺乏安全的保护。 企业,政府的基础设施虽然可以让攻击者获利很多,但是攻击难度很大,这些组织都有专业的团队在处…

遗传算法与深度学习实战系列,自动调优深度神经网络和机器学习的超参数

遗传算法与深度学习实战系列文章 目录 进化深度学习生命模拟及其应用生命模拟与进化论遗传算法中常用遗传算子遗传算法框架DEAPDEAP框架初体验使用遗传算法解决N皇后问题使用遗传算法解决旅行商问题使用遗传算法重建图像遗传编程详解与实现粒子群优化详解与实现协同进化详解与…

IPv6报头40字节具体怎么分配的?

目录 IPv6报头结构 字段详解 示例代码:IPv6报头的Python实现 输出示例 IPv6协议是为了解决IPv4地址耗尽问题而设计的下一代互联网协议。与IPv4相比,IPv6不仅提供了更大的地址空间,还简化了报头结构,提高了网络设备的处理效率。…

华为动态路由-OSPF-综合案例

华为动态路由-OSPF-综合案例 一、OSPF简介 1、OSPF概述 OSPF是一种开放式的、基于链路状态的内部网关协议(IGP),用于在自治系统内部进行路由选择和通信。 OSPF是互联网工程任务组(IETF)定义的标准之一,被…

数据结构:串( Bunch)及其实现

什么是串? 串(String)是由零个或多个字符组成的有限序列,比如 "hello" 就是一个串。串是编程中非常常见的数据结构,常用于处理文本数据。 串的特点: 顺序存储:串中的字符是连续存储…

自动化合约生成与管理:AI与Python的完美结合

友友们好! 我的新专栏《Python进阶》正式启动啦!这是一个专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会找到: ● 深入解析:每一篇文章都将…

软件架构设计:信息系统基础

一、信息系统概述 定义 信息系统(Information System, IS)是由硬件、软件、数据、人员和流程组成的集合,用于收集、处理、存储和分发信息,支持组织的决策和运营。 组成要素 硬件:计算机、服务器、网络设备等。软件&am…

【Leetcode 每日一题】2209. 用地毯覆盖后的最少白色砖块

问题背景 给你一个下标从 0 0 0 开始的 二进制 字符串 f l o o r floor floor,它表示地板上砖块的颜色。 f l o o r [ i ] floor[i] floor[i] 为 ‘0’ 表示地板上第 i i i 块砖块的颜色是 黑色 。 f l o o r [ i ] floor[i] floor[i] 为’1’ 表示地板上第 i …