下载图片(数据库BLOG字段)

package com.lc.dcwork.edoc.handSignPict.cmd;

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.imageio.ImageIO;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.loushang.next.dao.DaoFactory;
import org.loushang.next.data.DataSet;
import org.loushang.next.data.ParameterSet;
import org.loushang.next.upload.UploadFile;

import com.lc.dcwork.edoc.handSignPict.dao.IEdocHandSignPictQueryDao;
import com.lc.dcwork.edoc.handSignPict.dao.jdbc.EdocHandSignPictQueryDao;
import com.lc.dcwork.edoc.handSignPict.data.EdocHandSignPict;

public class EdocHandSignService implements Servlet{

	public void destroy() {
		
	}

	public ServletConfig getServletConfig() {
		return null;
	}

	public String getServletInfo() {
		return null;
	}

	public void init(ServletConfig arg0) throws ServletException {
		
	}

	public void service(ServletRequest srq, ServletResponse srp)
			throws ServletException, IOException {
		HttpServletRequest request = (HttpServletRequest)srq;
		
		HttpServletResponse response = (HttpServletResponse)srp;
		
		//操作类型
		String organId = request.getParameter("organId");
		if(organId == null || "".equals(organId)){
			throw new RuntimeException("organId不能为空。此异常在EdocHandSignService的service方法抛出");
		}
		IEdocHandSignPictQueryDao edocHandSignPictQueryDao = (IEdocHandSignPictQueryDao)DaoFactory.getDao(EdocHandSignPictQueryDao.class.getName());
		ParameterSet pset = new ParameterSet();
		pset.setParameter("organId", organId);
		DataSet ds = edocHandSignPictQueryDao.querySignPictInfo(pset);
		if(ds.getCount()>0){
			//EdocHandSignPict edocHandSignPict = (EdocHandSignPict)ds.getRecord(0).toBean(EdocHandSignPict.class);
			//UploadFile curFile = edocHandSignPict.getContent();
			byte[] signPicByte = edocHandSignPictQueryDao.getPictContent(organId);
			ServletOutputStream sout = response.getOutputStream();
			InputStream in = new ByteArrayInputStream(signPicByte);
			BufferedImage img = ImageIO.read(in);
			//word文档只支持png类型,不支持jpg,gif
			ImageIO.write(img,"png",sout);//可以设置默认下载图片格式
			in.close();
		}
	}

}

得到照片内容:

    //得到照片内容
    public byte[] getPictContent(String organId){
      StringBuffer sqlSb = new StringBuffer("SELECT CONTENT FROM EDOC_HAND_SIGN_PICT WHERE 1=1 AND ORGAN_ID='"+organId+"';
      QueryMapper maper = new QueryMapper(getDataSource(), sqlSb.toString());
      maper.compile();
      List list = maper.execute();
      if(list.size()>0){
	  byte[] content = (byte[]) list.get(0);
	  return content;
      }
      throw new RuntimeException("人员organId没有查到对应的图片信息 此异常在EdocHandSignPictQueryDao的querySignPictInfo方法中出;
    }
	
    //记录查询内部类
    private class QueryMapper extends MappingSqlQuery
    {
      public QueryMapper(DataSource ds, String querySql)
      {
        super(ds, querySql);
      }

      protected Object mapRow(ResultSet resultset, int num)
        throws SQLException
      {
		  byte[] temp = resultset.getBytes("CONTENT");
		  return temp;
      }
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值