Rev 1306 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
204 | jmachado | 1 | package pt.estgp.estgweb.web; |
2 | |||
3 | import org.apache.log4j.Logger; |
||
4 | |||
5 | import javax.servlet.http.HttpServlet; |
||
6 | import javax.servlet.http.HttpServletRequest; |
||
7 | import javax.servlet.http.HttpServletResponse; |
||
8 | import javax.servlet.ServletException; |
||
9 | import java.io.IOException; |
||
10 | import java.io.OutputStream; |
||
11 | import java.io.InputStream; |
||
12 | |||
13 | import jomm.dao.impl.AbstractDao; |
||
14 | import jomm.utils.StreamsUtils; |
||
355 | jmachado | 15 | import jomm.utils.StringsUtils; |
204 | jmachado | 16 | import pt.estgp.estgweb.domain.Image; |
17 | import pt.estgp.estgweb.domain.views.CourseUnitView; |
||
18 | import pt.estgp.estgweb.domain.dao.impl.ImageDaoImpl; |
||
19 | import pt.estgp.estgweb.services.data.ImageManager; |
||
20 | import pt.estgp.estgweb.services.data.IRepositoryFile; |
||
21 | import pt.estgp.estgweb.web.utils.RequestUtils; |
||
22 | import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
||
23 | import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
||
24 | import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException; |
||
25 | import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException; |
||
26 | import pt.utl.ist.berserk.logic.filterManager.exceptions.*; |
||
27 | |||
28 | /** |
||
29 | * @author Fabio |
||
30 | * @date 4/Abr/2008 |
||
31 | * @time 11:03:00 |
||
32 | * @see pt.estgp.estgweb.web |
||
33 | */ |
||
34 | public class RepositoryStream extends HttpServlet |
||
35 | { |
||
36 | |||
37 | private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(RepositoryStream.class); |
||
38 | |||
39 | |||
40 | public void doGet(HttpServletRequest request, HttpServletResponse response) |
||
41 | throws ServletException, 1.5.0/docs/api/java/io/IOException.html">IOException |
||
42 | { |
||
43 | |||
44 | 1.5.0/docs/api/java/lang/String.html">String objectRequired = request.getPathInfo(); |
||
45 | objectRequired = objectRequired.substring(1); |
||
46 | |||
47 | long id = 1.5.0/docs/api/java/lang/Long.html">Long.parseLong(objectRequired.trim()); |
||
48 | |||
49 | IServiceManager sm = null; |
||
50 | try |
||
51 | { |
||
52 | sm = ServiceManager.getInstance(); |
||
53 | } |
||
54 | catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e) |
||
55 | { |
||
56 | logger.error(e,e); |
||
57 | response.sendError(500); |
||
58 | return; |
||
59 | } |
||
60 | |||
61 | 1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{"identifier"}; |
||
62 | 5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{""+ id}; |
||
63 | try |
||
64 | { |
||
65 | IRepositoryFile iRepositoryFile = (IRepositoryFile) sm.execute(RequestUtils.getRequester(request, response), "LoadRepositoryFile", args, names); |
||
66 | if(iRepositoryFile == null) |
||
67 | { |
||
68 | response.sendError(404); |
||
69 | return; |
||
70 | } |
||
71 | response.setContentLength(iRepositoryFile.getSize()); |
||
72 | response.setContentType(iRepositoryFile.getContentType()); |
||
357 | jmachado | 73 | response.setHeader("Content-disposition","inline; filename=" + iRepositoryFile.getName()); |
204 | jmachado | 74 | StreamsUtils.inputStream2OutputStream(iRepositoryFile.getInput(),response.getOutputStream()); |
75 | } |
||
76 | catch(FilterChainFailedException fail) |
||
77 | { |
||
78 | response.sendError(401); |
||
79 | } |
||
80 | catch(1.5.0/docs/api/java/lang/Throwable.html">Throwable e) |
||
81 | { |
||
82 | logger.error(e,e); |
||
83 | response.sendError(500); |
||
84 | } |
||
85 | } |
||
86 | |||
87 | } |