读图片输出流在前台展现

来源:互联网 发布:短线王炒股软件 编辑:程序博客网 时间:2024/05/05 10:21

jsp页面:

<img id="preview" alt="" name="pic" src="${ctx}/imgservlet.imgcheck?path=<s:property value="picAbsolutePath"/>" />

web.xml:

<servlet>
  <servlet-name>imgservlet</servlet-name>
  <servlet-class>com.bksuns.system.servlet.ImageServlet</servlet-class>
  <init-param>
   <param-name>debug</param-name>
   <param-value>flase</param-value>
  </init-param>
 </servlet>
 
 <servlet-mapping>
  <servlet-name>imgservlet</servlet-name>
  <url-pattern>*.imgcheck</url-pattern>
 </servlet-mapping>

后台:

package com.system.servlet;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;/** * 读图片输出流在前台展现 */public class ImageServlet extends HttpServlet{public void service(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException {System.setProperty("java.awt.headless", "true");HttpSession session = request.getSession();// 设置页面不缓存response.setHeader("Pragma", "No-cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expires", 0);String path=request.getParameter("path");//获取图片的路径path=new String(path.getBytes("ISO-8859-1"),"utf-8");File file=new File(path);if(file.exists()){Image img=ImageIO.read(file);int height=img.getHeight(null);int width=img.getWidth(null);BufferedImage image=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);image.getGraphics().drawImage(img, 0, 0, width, height, null);FileOutputStream out=new FileOutputStream("newFile.jpg");JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);encoder.encode(image);ImageIO.write(image,"JPEG", response.getOutputStream());out.close();}}}



0 0