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

来源:互联网 发布:天刀捏脸数据怎么覆盖 编辑:程序博客网 时间:2024/05/17 12:19
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,gifImageIO.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
原创粉丝点击