1 package com.dotmarketing.servlets; 2 3 import java.io.BufferedInputStream ; 4 import java.io.FileInputStream ; 5 import java.io.IOException ; 6 7 import javax.servlet.ServletException ; 8 import javax.servlet.ServletOutputStream ; 9 import javax.servlet.http.HttpServlet ; 10 import javax.servlet.http.HttpServletRequest ; 11 import javax.servlet.http.HttpServletResponse ; 12 13 import com.dotmarketing.portlets.files.factories.FileFactory; 14 import com.dotmarketing.util.Config; 15 import com.dotmarketing.util.Logger; 16 import com.dotmarketing.util.WebKeys; 17 18 public class FileServlet extends HttpServlet { 19 20 22 private static final long serialVersionUID = 1L; 23 24 protected void service(HttpServletRequest request, HttpServletResponse response) 25 throws ServletException , IOException { 26 27 if (Config.CONTEXT == null) { 28 response.sendError(404, "Asset not Found"); 29 return; 30 } 31 32 boolean preview = (request.getAttribute(WebKeys.PREVIEW_MODE_COOKIE) != null && request.getAttribute(WebKeys.ADMIN_MODE_COOKIE) != null); 33 34 com.dotmarketing.portlets.files.model.File _file = null ; 37 if (_file != null && _file.getInode() > 0) { 38 response.setContentType(_file.getMimeType()); 39 ServletOutputStream out = response.getOutputStream(); 40 41 try { 42 FileInputStream fis = new FileInputStream (FileFactory.getRealAssetPath(_file)); 43 BufferedInputStream bis = new BufferedInputStream (fis); 44 byte[] buf = new byte[1024]; 45 int i = 0; 46 while ((i = bis.read(buf)) != -1) { 47 out.write(buf, 0, i); 48 } 49 bis.close(); 50 fis.close(); 51 out.close(); 52 } 53 catch (Exception e) { 54 Logger.warn(this, e.toString(), e); 55 } 56 } 57 else { 58 if (!preview) { 59 response.sendError(404, "Live Asset not Found"); 60 } 61 else { 62 response.sendError(404, "Working Asset not Found"); 63 } 64 } 65 return; 66 } 67 68 } 69 | Popular Tags |