zoukankan      html  css  js  c++  java
  • 数据库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();
                    }
                }
            }
        }
  • 相关阅读:
    机器学习性能指标精确率、召回率、F1值、ROC、PRC与AUC--周振洋
    机器学习项目实战(一)垃圾邮件的过滤技术-周振洋
    Python音频处理(一)音频基础知识-周振洋
    LightGBM详细用法--机器学习算法--周振洋
    LightGBM的算法介绍
    Oracle数据库学习一 (Oracle数据库安装/环境变量配置/客户端/基础/问题...),待续...
    WebService小白学习 之 Spring整合CXF,添加拦截器 (7)
    WebService小白学习 之 CXF添加拦截器,自定义拦截器 (6)
    WebService小白学习 之 处理一些Map等复杂类型 (5)
    WebService小白学习 之 处理JavaBean以及复合类型,list (4)
  • 原文地址:https://www.cnblogs.com/antonyhubei/p/11323065.html
Copyright © 2011-2022 走看看