Servlet实现图片展示和下载的代码
0
import java.io.File; public class ShowImage extends HttpServlet { /** * Constructor of the object. */ public ShowImage() { super(); } /** * Destruction of the servlet. */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // showImage(request, response); downlodeImage(request, response); } public void showImage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 读取方式 // response.setContentType("application/zip"); response.setContentType("image/jpeg"); // 获取图片绝对路径 String path = this.getServletContext().getRealPath("/"); File file = new File(path + "/images/WIN_20131027_214421.JPG"); // 创建文件输入流 FileInputStream is = new FileInputStream(file); // 响应输出流 ServletOutputStream out = response.getOutputStream(); // 创建缓冲区 byte[] buffer = new byte[1024]; int len = 0; while ((len = is.read(buffer)) != -1) { out.write(buffer, 0, len); } is.close(); out.flush(); out.close(); } public void downlodeImage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取图片绝对路径 String path = this.getServletContext().getRealPath("/"); File file = new File(path + "/images/WIN_20131027_214421.JPG"); //设置头信息,内容处理的方式,attachment以附件的形式打开,就是进行下载,并设置下载文件的命名 response.setHeader("Content-Disposition","attachment;filename="+file.getName()); // 创建文件输入流 FileInputStream is = new FileInputStream(file); // 响应输出流 ServletOutputStream out = response.getOutputStream(); // 创建缓冲区 byte[] buffer = new byte[1024]; int len = 0; while ((len = is.read(buffer)) != -1) { out.write(buffer, 0, len); } is.close(); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }