设备二维码图片下载

news/2025/10/18 19:59:05/文章来源:https://www.cnblogs.com/wujiang2025/p/19148179

package com.inovance.paas.tpm.infra.util;

import org.apache.commons.compress.utils.IOUtils;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class DownloadZipUtil {
public static void downloadZip(HttpServletResponse response, String sourceFolderPath, String zipName, String filePath){
// 获取文件分隔符(动态适配操作系统)
String separator = File.separator;
String zipFilePath = filePath + "zip"+ separator + zipName +".zip"; // 生成的ZIP文件路径

    FileOutputStream fos;ZipOutputStream zos;try {fos = new FileOutputStream(zipFilePath);zos = new ZipOutputStream(fos);addFolderToZip("", sourceFolderPath, zos);zos.close();fos.close();File downloadFile = new File(zipFilePath);FileInputStream inputStream = new FileInputStream(downloadFile);response.setContentType("application/zip");response.setHeader("Content-Disposition", "attachment; filename=\"" + downloadFile.getName() + "\"");IOUtils.copy(inputStream, response.getOutputStream());  // 使用IOUtils将ZIP响应给客户端inputStream.close();response.flushBuffer();doGet(response, zipFilePath, zipName);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
}private static void addFileToZip(String path, String srcFile, ZipOutputStream zip) throws IOException {File folder = new File(srcFile);if (folder.isDirectory()) {addFolderToZip(path, srcFile, zip);} else {byte[] buf = new byte[1024];int len;FileInputStream in = new FileInputStream(srcFile);zip.putNextEntry(new ZipEntry(path + "/" + folder.getName()));while ((len = in.read(buf)) > 0) {zip.write(buf, 0, len);}}
}private static void addFolderToZip(String path, String srcFolder, ZipOutputStream zip) throws IOException {File folder = new File(srcFolder);for (String fileName : folder.list()) {if (path.equals("")) {addFileToZip(folder.getName(), srcFolder + "/" + fileName, zip);} else {addFileToZip(path + "/" + folder.getName(), srcFolder + "/" + fileName, zip);}}
}protected static void doGet(HttpServletResponse response, String filePath, String zipName) throws IOException {//设置文件路径File downloadFile = new File(filePath);FileInputStream inStream = new FileInputStream(downloadFile);//设置下载的文件类型为zipresponse.setContentType("application/zip");//设置文件名,此处以zipFile.zip为例response.setHeader("Content-Disposition", "attachment; filename="+zipName+".zip");//获取输出流ServletOutputStream outputStream = response.getOutputStream();//创建缓冲区byte[] buffer = new byte[1024];int bytesRead = -1;//将文件写入输出流while ((bytesRead = inStream.read(buffer)) != -1) {outputStream.write(buffer, 0, bytesRead);}inStream.close();outputStream.flush();outputStream.close();
}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/938976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

neural network中的tensor是什么?

在神经网络中,Tensor(张量) 是核心数据结构,用于表示和操作多维数组。它本质上是数学中张量概念的工程化实现,是标量、向量、矩阵在高维空间的自然扩展。以下从多个维度详细解释: 1. 数学本质:多维数组的泛化维…

2025年工厂维保,工厂机电维修,工厂应急维修,工厂运维服务厂家推荐排行榜,专业高效与全方位保障之选!

2025年工厂维保、工厂机电维修、工厂应急维修、工厂运维服务厂家推荐排行榜,专业高效与全方位保障之选!随着工业4.0时代的到来,制造业的自动化和智能化水平不断提升,工厂维保、机电维修、应急维修及运维服务的需求…

2025/10/17

Return on Investment(ROI) 投资回报率 - 最常用的商业术语 这是“ROI”最核心和最广泛使用的含义。 全称:Return on Investment 中文:投资回报率 定义:衡量一项投资盈利效率的指标,用于评估从投资中获得的回报与…

2025年视频拍摄服务权威推荐榜:创意剪辑与高清画质完美结合,打造视觉盛宴!

2025年视频拍摄服务权威推荐榜:创意剪辑与高清画质完美结合,打造视觉盛宴!随着数字化时代的到来,视频拍摄已成为企业宣传、品牌推广的重要手段。高质量的视频不仅能够吸引观众的注意力,还能有效提升品牌形象和市场…

2025年10月权威更新:门头/仿木纹板/拉网/铝复合板/锥芯板/太空舱/铝蜂窝板/铝单板厂家排行榜前十强推荐与选购指南四川汇才以实力登顶

随着建筑行业对装饰材料的品质、环保与定制化要求不断提升,铝单板市场竞争已从单一价格比拼转向综合实力较量。2025 年行业数据显示,头部厂家凭借规模化生产、技术创新与全链条服务占据市场主导。本榜单基于生产能力…

2025年网络推广服务商权威推荐榜单,SEO优化,SEM营销,社交媒体推广,内容营销公司推荐

2025年网络推广服务商权威推荐榜单:SEO优化、SEM营销、社交媒体推广、内容营销公司推荐随着数字化转型的加速,越来越多的企业开始重视网络推广,希望通过SEO优化、SEM营销、社交媒体推广和内容营销等手段提升品牌影响…

日志分析-Tomcat日志分析

日志分析-Tomcat日志分析 简介 小王在自己的服务器上安装配置了Tomcat,并写了几个简单的网页。但由于安全意识不足,很快就被攻击者利用了。请你帮他排查一下存在的安全问题。 RDP 端口3389 用户名/密码:Administrat…

Cursor国内用户无法使用模型(Model not avilable)解决方案

Cursor作为一个AI+IDE编辑器,它是基于VSCode开源代码进行开发,它在底层集成了多种大语言模型(如:Claude、ChatGPT、Gemini等)来使用的模型能力。然而,不同模型之间的能力差异也是非常大的,作为我的实际使用体验…

2025年手持式光谱仪厂家权威推荐榜单:精准检测与便携操作的行业首选!

2025年手持式光谱仪厂家权威推荐榜单:精准检测与便携操作的行业首选!随着科技的不断进步,手持式光谱仪在多个行业中发挥着越来越重要的作用。无论是环境监测、食品安全还是工业生产,手持式光谱仪都以其便携性和高精…

CF1325F Ehabs Last Theorem 题解

Sol 令 \(k=\left\lceil\sqrt{n}\right\rceil\)。 首先注意到环相当容易做,直接 DFS 生成树,然后判断是否有点对 \((a,b)\) 满足 \(a\) 是 \(b\) 的祖先且 \(dis_{a,b}>=k\)。 如果不存在环,那么就意味着对于任何…

2025年解冻设备厂家权威推荐榜单:高效节能与智能控制的行业首选!

2025年解冻设备厂家权威推荐榜单:高效节能与智能控制的行业首选!随着食品加工行业的快速发展,解冻设备作为关键环节之一,其性能和效率直接影响到生产质量和成本。为了帮助筛选解冻设备品牌,特此发布权威推荐榜单,…

Notepad++中替换时保留分组字符

例如,要找到不是:和。的换行,并去掉换行,保留前面的字符: 查找目标([^:。])\r\n 替换为 \1 这里的1是表示第1个分组,即括号中正则匹配中的字符。* 在把pdf的文字复制到txt文件时会用到。

2025年10月休闲食品品牌权威评测与推荐:用数据说话的全景选购指南

一、引言 当“解压”“微醺”“追剧”成为都市人高频场景词,休闲食品已从“解馋”升级为“情绪刚需”。对于采购者、创业者乃至普通消费者而言,如何在口味、健康、成本之间找到平衡点,直接决定复购率与经营利润。20…

2025年10月PE管厂家推荐榜:茗杰建华领衔的对比评测与选购指南

一、引言 市政自来水、农业灌排、地源热泵、集中供热等场景对PE管的耐压、耐腐蚀、寿命与接口可靠性提出同步要求,采购者既要控制一次性材料成本,又要降低后期维护费用,还要确保工地交付节点。2025年四季度北方基建…

2025年棋牌室加盟权威推荐榜单:精选品牌,专业服务与市场口碑深度解析!

2025年棋牌室加盟权威推荐榜单:精选品牌,专业服务与市场口碑深度解析!随着休闲娱乐市场的不断发展壮大,棋牌室作为传统且受欢迎的娱乐方式,近年来也迎来了新的发展机遇。越来越多的投资者开始关注棋牌室加盟项目,…

2025 年数控铣床厂家最新推荐榜单:双头 / 双面 / 龙门 / 双侧 / 新型 / 双端面 / 平面 / 双头龙门设备优质厂家排行及选购攻略

当前制造业加速向智能化、高精度方向转型,数控铣床作为核心工业母机,其品质直接决定生产效率与产品精度。但市场上品牌繁杂,既有技术落后、故障频发的低价设备,也有功能冗余、与企业需求不匹配的高端产品,不少企业…

2025年10月超声波清洗机厂家推荐:榜单透视与选购要点

在选择超声波清洗机厂家时,关键在于找到最适合自身实际需求的解决方案。中国工业清洗协会2024年度《超声清洗设备行业运行简报》显示,2023年国内规模以上超声清洗设备制造商营收同比增长11.4%,其中半导体、光伏、精…

2025年混合机厂家推荐排行榜,槽型/卧式槽型/双螺旋锥形/螺杆锥形/高速/立式高速/方锥/方锥型/螺带/卧式螺带/V型/双锥/一维/一维运动/二维/二维运动/三维运动/三维混合机公司推荐

2025年混合机厂家推荐排行榜:槽型/卧式槽型/双螺旋锥形/螺杆锥形/高速/立式高速/方锥/方锥型/螺带/卧式螺带/V型/双锥/一维/一维运动/二维/二维运动/三维运动/三维混合机公司推荐随着工业技术的不断发展,混合机在化工…