KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > servlets > FileServlet


1 package com.dotmarketing.servlets;
2
3 import java.io.BufferedInputStream JavaDoc;
4 import java.io.FileInputStream JavaDoc;
5 import java.io.IOException JavaDoc;
6
7 import javax.servlet.ServletException JavaDoc;
8 import javax.servlet.ServletOutputStream JavaDoc;
9 import javax.servlet.http.HttpServlet JavaDoc;
10 import javax.servlet.http.HttpServletRequest JavaDoc;
11 import javax.servlet.http.HttpServletResponse JavaDoc;
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 JavaDoc {
19
20     // the number of cached objects
21

22     private static final long serialVersionUID = 1L;
23
24     protected void service(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
25         throws ServletException JavaDoc, IOException JavaDoc {
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         //try to get the file from the cache using the URI
35
com.dotmarketing.portlets.files.model.File _file = null ; //FileFactory.getCachedFile(request.getRequestURI(), live);
36

37         if (_file != null && _file.getInode() > 0) {
38             response.setContentType(_file.getMimeType());
39             ServletOutputStream JavaDoc out = response.getOutputStream();
40
41             try {
42                 FileInputStream JavaDoc fis = new FileInputStream JavaDoc(FileFactory.getRealAssetPath(_file));
43                 BufferedInputStream JavaDoc bis = new BufferedInputStream JavaDoc(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 JavaDoc 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