数据库存储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图片文件,多图片打包下载的更多相关文章

  1. Universal App图片文件和图片byte[]信息转换为bitmap

    1. 打开图片文件并转换为BitmapImage类 首先要做的自然是打开一个图片文件了,可以使用FileOpenPicker来手动选择图片,总之能拿到一个StorageFile都行. //打开图片选择 ...

  2. Java实现打包下载BLOB字段中的文件

    概述 web项目的文件打包下载实现:servlet接收请求,spring工具类访问数据库及简化大字段内容获取,org.apache.tools.zip打包. 必要提醒:当前总结是继Java实现下载BL ...

  3. Linux服务器上实现数据库和图片文件的定时备份

    一. 1.首先创建一个目录,用于存放备份的数据   2.在该目录下创建两个子目录一个用于存放数据库的信息,一个用于存放图片资源       3.#数据库的备份 执行下面的命令    mysqldump ...

  4. Jszip的使用和打包下载图片

    因为canvas总结到后面又想到了jszip的一些事情,那就索性也回去看看吧.试过,至少谷歌和火狐都是支持jszip的. 1.  jszip的使用 官方文档说的很清楚了,而且也有读取zip文件.生成z ...

  5. webpack提取图片文件打包压缩

    抽离图片文件打包到指定路径下 压缩抽离的图片资源 配置生成html中的图片路径 一.准备测试环境 //工作区间 src//文件夹 index.js//入口文件 index.css//样式文件 inde ...

  6. c#服务端图片打包下载

    一,设计多图片打包下载逻辑:1,如果是要拉取腾讯云等资源服务器的图片,2,我们先把远程图片拉取到本地的临时文件夹,3,然后压缩临时文件夹,4,压缩完删除临时文件夹,5,返回压缩完给用户,6,用户就去请 ...

  7. java开发在线下载功能,自动打开浏览器下载功能下载网络文件或图片

    因为业务的需要,公司产品要求商品详情页面有个下载的功能 找了很多的方法,发现有的需要打开一个新窗口,而且在某些浏览器上不适用,所以继续寻找更好的方法 跟同事沟通后发现他那里有个下载的方法,不过是C#写 ...

  8. 免费 CDN 玩法 —— 将整个网站打包成一个图片文件

    资源合并 前端开发者都知道,过多的请求对性能影响很大.而且有些 CDN 不仅按流量收费,请求数也收费,如果网页里有大量小文件,显然不划算. 为此不少开发者将零碎的小文件进行合并优化,例如 JS/CSS ...

  9. b/s 读取多个FTP文件(图片,视频)压缩到服务器 下载到客户端

    其实需求是这样, 要做一键导出, 有图片,有照片,youhtml,存在不同的文件夹,每次下载都必须下载最新数据,因为FTP是随时更新的. 1.这要是一直下载下载,浏览器一直跳窗口,蛋疼的我都看不下去. ...

随机推荐

  1. js数据类型及判断数据类型

    众所周知,js有7种数据类型 1. null 2. undefined 3. boolean 4. number 5. string 6. 引用类型(object.array.function) 7. ...

  2. Vue中v-model解析、sync修饰符解析

    上善若水,水善利萬物而不爭.——<道德經> 简介 在平时开发是经常用到一些父子组件通信,经常用到props.vuex等等,这里面记录另外的三种方式v-model.sync是怎么使用,再说是 ...

  3. EasyUI DataGrid 根据ID选中行(转载)

      转载来源: https://blog.csdn.net/chq00788/article/details/51505519 function selectRows(){ //获取需要选中的记录ID ...

  4. redis3集群管理

    以下操作基于redis3.X版本:Redis集群存储原理:Redis 集群使用数据分片(sharding),而非一致性哈希(consistency hashing)来实现,一个 Redis 集群包含 ...

  5. MYSQL 存储引擎概述

    一.存储引擎 Mysql中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中每一种技术都使用了不同的存储机制,索引技巧.锁定水平并且最终提供广泛的不同功能和能力.通过选择不同的技术,你能够获得 ...

  6. Flask的基础二

    一.session 除请求对象之外,还有一个 session 对象.它允许你在不同请求间存储特定用户的信息.它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名要使用会话,你需 ...

  7. zabbix监控MySQL状态值获取不到值原因分析

    在server端测试键值 [root@zbx-server etc]# zabbix_get -s MySQL-glibc -k "buffer_pool_wait_free" 如 ...

  8. rest-assured-doc接口自动化测试,数据驱动测试平台

    原文:https://github.com/rest-assured/rest-assured/wiki/Usage 本文github地址:https://github.com/RookieTeste ...

  9. Something is already running on port 3000. Would you like to run the app on another port instead?

    查看端口sudo lsof -i :3000 删除进程 sudo kill -9 12297[pid]  

  10. js判断日期格式(YYYYMM)

    function datepanduan(obj){ var date = document.getElementById(obj.id).value; var reg = /^\b[1-3]\d{3 ...