数据库blob图片文件,多图片打包下载
数据库存储blob图片文件,前端打包下载
数据库图片文件实体类
package com.cmrh.mspserver.pos.dto;
import java.io.Serializable;
import org.springframework.format.annotation.DateTimeFormat;
public class MspPosImage implements Serializable {
private static final long serialVersionUID = -4668256147224146458L;
/**
* 影像类型
*/
private String imageType;
/**
* 影像内容
*/
private byte[] imageValue;
/**
* 影像顺序
*/
private Integer sortNum;
/**
* 创建人 db_column: CREATED_USER
*/
private java.lang.String createdUser;
/**
* 创建时间 db_column: CREATED_DATE
*/
@DateTimeFormat(pattern="yyyy-MM-dd")
private java.util.Date createdDate;
/**
* 更新人 db_column: UPDATED_USER
*/
private java.lang.String updatedUser;
/**
* 更新时间 db_column: UPDATED_DATE
*/
@DateTimeFormat(pattern="yyyy-MM-dd")
private java.util.Date updatedDate;
/**
* 流水号 db_column: PK_SERIAL
*/
private java.lang.String pkSerial;
public String getImageType() {
return imageType;
}
public void setImageType(String imageType) {
this.imageType = imageType;
}
public byte[] getImageValue() {
return imageValue;
}
public void setImageValue(byte[] imageValue) {
this.imageValue = imageValue;
}
public java.lang.String getCreatedUser() {
return createdUser;
}
public void setCreatedUser(java.lang.String createdUser) {
this.createdUser = createdUser;
}
public java.util.Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(java.util.Date createdDate) {
this.createdDate = createdDate;
}
public java.lang.String getUpdatedUser() {
return updatedUser;
}
public void setUpdatedUser(java.lang.String updatedUser) {
this.updatedUser = updatedUser;
}
public java.util.Date getUpdatedDate() {
return updatedDate;
}
public void setUpdatedDate(java.util.Date updatedDate) {
this.updatedDate = updatedDate;
}
public java.lang.String getPkSerial() {
return pkSerial;
}
public void setPkSerial(java.lang.String pkSerial) {
this.pkSerial = pkSerial;
}
public Integer getSortNum() {
return sortNum;
}
public void setSortNum(Integer sortNum) {
this.sortNum = sortNum;
}
}
下载sql
<!-- 获取影像信息 -->
<select id="getMspPosImageList" parameterClass="java.util.List"
resultClass="com.cmrh.mspserver.pos.dto.MspPosImage">
SELECT mpi.PK_SERIAL pkSerial,mpi.IMAGE_TYPE imageType,mpi.IMAGE_VALUE imageValue,mpi.SORT_NUM sortNum
FROM
MSPDATA.MSP_POS_IMAGE mpi
WHERE
mpi.PK_SERIAL IN
<iterate open="(" close=")" conjunction=",">
#pkSerial[]#
</iterate>
ORDER BY mpi.CREATED_DATE,mpi.SORT_NUM
</select>
请求处理类
public void downloadImage(HttpServletResponse response, String imageIds) {
ZipOutputStream zos = null;
try {
String nowTimeString = DateUtil.millis2String(System.currentTimeMillis());
//文件的名称
String downloadFilename = nowTimeString + ".zip";
//转换中文否则可能会产生乱码
downloadFilename = URLEncoder.encode(downloadFilename, "UTF-8");
// 指明response的返回对象是文件流
response.setContentType("application/octet-stream");
// 设置在下载框默认显示的文件名
response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename);
zos = new ZipOutputStream(response.getOutputStream());
if (StringUtils.isNotEmpty(imageIds)) {
List<String> idList = Arrays.asList(imageIds.split(","));
List<MspPosImage> images = debunkService.getMspPosImageList(idList);
if (!CollectionUtils.isEmpty(images)) {
for (int i = 0; i < images.size(); i++) {
InputStream fis = CommonUtil.byte2Input(images.get(i).getImageValue());
zos.putNextEntry(new ZipEntry("第" + (i+1) + "张截图.jpg"));
byte[] buffer = new byte[1024];
int r = 0;
while ((r = fis.read(buffer)) != -1) {
zos.write(buffer, 0, r);
}
fis.close();
}
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (zos != null) {
try {
zos.flush();
zos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
数据库blob图片文件,多图片打包下载的更多相关文章
- Universal App图片文件和图片byte[]信息转换为bitmap
1. 打开图片文件并转换为BitmapImage类 首先要做的自然是打开一个图片文件了,可以使用FileOpenPicker来手动选择图片,总之能拿到一个StorageFile都行. //打开图片选择 ...
- Java实现打包下载BLOB字段中的文件
概述 web项目的文件打包下载实现:servlet接收请求,spring工具类访问数据库及简化大字段内容获取,org.apache.tools.zip打包. 必要提醒:当前总结是继Java实现下载BL ...
- Linux服务器上实现数据库和图片文件的定时备份
一. 1.首先创建一个目录,用于存放备份的数据 2.在该目录下创建两个子目录一个用于存放数据库的信息,一个用于存放图片资源 3.#数据库的备份 执行下面的命令 mysqldump ...
- Jszip的使用和打包下载图片
因为canvas总结到后面又想到了jszip的一些事情,那就索性也回去看看吧.试过,至少谷歌和火狐都是支持jszip的. 1. jszip的使用 官方文档说的很清楚了,而且也有读取zip文件.生成z ...
- webpack提取图片文件打包压缩
抽离图片文件打包到指定路径下 压缩抽离的图片资源 配置生成html中的图片路径 一.准备测试环境 //工作区间 src//文件夹 index.js//入口文件 index.css//样式文件 inde ...
- c#服务端图片打包下载
一,设计多图片打包下载逻辑:1,如果是要拉取腾讯云等资源服务器的图片,2,我们先把远程图片拉取到本地的临时文件夹,3,然后压缩临时文件夹,4,压缩完删除临时文件夹,5,返回压缩完给用户,6,用户就去请 ...
- java开发在线下载功能,自动打开浏览器下载功能下载网络文件或图片
因为业务的需要,公司产品要求商品详情页面有个下载的功能 找了很多的方法,发现有的需要打开一个新窗口,而且在某些浏览器上不适用,所以继续寻找更好的方法 跟同事沟通后发现他那里有个下载的方法,不过是C#写 ...
- 免费 CDN 玩法 —— 将整个网站打包成一个图片文件
资源合并 前端开发者都知道,过多的请求对性能影响很大.而且有些 CDN 不仅按流量收费,请求数也收费,如果网页里有大量小文件,显然不划算. 为此不少开发者将零碎的小文件进行合并优化,例如 JS/CSS ...
- b/s 读取多个FTP文件(图片,视频)压缩到服务器 下载到客户端
其实需求是这样, 要做一键导出, 有图片,有照片,youhtml,存在不同的文件夹,每次下载都必须下载最新数据,因为FTP是随时更新的. 1.这要是一直下载下载,浏览器一直跳窗口,蛋疼的我都看不下去. ...
随机推荐
- Django form表单 组件
目录 Django form表单 组件 Form 组件介绍 普通方式手写注册功能 使用form组件实现注册功能 Form 常用字段与插件 常用字段(必备) 字段参数(必备) 内置验证(必备) 自定义效 ...
- Vscode配置springboot开发环境变量
先安装必要的插件 然后在左下角setting 打开setting 配置setting.json文件 ,主要是配置了用户设置 这里面主要配置jdk环境和maven,建议下载vscode推荐的openjd ...
- keychain不能导出p12证书的解决方法
点击左边下面的“我的证书”,然后点击右边的证书,打开下面有一个key导出就可以了.
- WebService知识点
Web Services简介: 什么是Web Services? Web Services 是应用程序组件 Web Services 使用开放协议进行通信 Web Services 是独立的(self ...
- Matlab Cordic 一个数开方代码,适用FPGA
function [sqrt_value] = calsqrt(a)NormKn = ceil(log2(a)) - 1;fprintf("Normalization input data ...
- unity 之 场景切换进度条显示
一.UI.建立slider适当更改即可: 二.新增loadScene脚本,用来进行场景切换,将其绑定任意物体上面.博主以放置主相机为例.参数分别为进度条(用来设置value值),显示进度文本text: ...
- 登录-redis
session的问题 目前session直接是js变量,放在nodejs进程内存中 1.进程内存有限,访问量过大,内存暴增怎么办? 2.正式线上运行是多进程,进程之间内存无法共享 为何session适 ...
- [LeetCode] 0752. Open the Lock 打开转盘锁
题目 You have a lock in front of you with 4 circular wheels. Each wheel has 10 slots: '0', '1', '2', ' ...
- VS Code中配置Markdown
其实,对我来说是反过来的,我是为了使用Markdown而安装VS Code(虽然久仰大名) 安装VS Code 安装Markdown插件 使用篇 1. 安装vscode 之所以啰嗦一下,是因为据说安装 ...
- OAuth 2.0攻击
参考文章:https://www.yuque.com/pmiaowu/web_security_1/oauth 作者:PHPoop 关于OAuth2.0协议的授权流程可以参考下面的流程图: 1.Cli ...