数据库存储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. Ubuntu恢复默认界面命令

    命令: dconf reset -f /

  2. Jenkins配置Publish Over SSH讲解说明

    原创 Jenkins配置Publish Over SSH讲解说明 2018-08-22 11:59:30 M.Blog 阅读数 3764更多 分类专栏: Jenkins   版权声明:本文为博主原创文 ...

  3. Centos部署项目

    nginx + virtualenv + uwsgi + django + mysql + supervisor 部署项目 一.安装Python3 二.安装MariaDB,并授权远程 grant al ...

  4. visual studio故障修复

    如果没有安装程序,直接在控制面板——>程序和功能,在列表中找到您安装的vs,右键选择更改,然后程序会启动,做一些准备.然后又三个选项,可以选择修复.

  5. Vue项目中自动将px转换为rem

    一.配置与安装步骤: 1.在 Vue 项目的 src 文件夹下创建一个 config 文件夹: 2.在 config 文件夹中创建 rem.js: 3.将以下代码复制到 rem.js 中: // 基准 ...

  6. unsupervised learning: clustering介绍

    unsupervised learning 上面是监督学习与无监督学习的比较,监督学习的training set是一组带label(y)的训练集,而无监督学习不带有label(y). 上图中的监督学习 ...

  7. 【Python学习】Python3 基础语法

    ==================================================================================================== ...

  8. Vue中的插槽---slot

    一:什么是插槽? 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. 插槽显不显示.怎样显示是由 ...

  9. C++创建对象的3种方式(转载)

    #include <iostream> using namespace std; class A { private: int n; public: A(int m):n(m) { } ~ ...

  10. [NgRx] Optimistically Editing Entity Data

    First thing first, let's define a action to update entity: import { createAction, props } from " ...