Subversion Repositories bacoAlunos

Rev

Rev 1310 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
18 jmachado 1
package pt.estgp.estgweb.web;
2
 
3
import org.apache.log4j.Logger;
4
import org.apache.commons.httpclient.util.URIUtil;
5
 
6
import javax.servlet.http.HttpServlet;
7
import javax.servlet.http.HttpServletRequest;
8
import javax.servlet.http.HttpServletResponse;
9
import javax.servlet.ServletException;
10
import java.io.*;
11
import java.net.URL;
12
import java.net.URLConnection;
13
 
1814 jmachado 14
import pt.estgp.estgweb.utils.Globals;
18 jmachado 15
import jomm.utils.MimeTypeGuesser;
16
 
17
/**
18
 * @author Jorge Machado
19
 * @date 26/Fev/2008
20
 * @time 12:46:16
21
 * @see pt.estgp.estgweb.web
22
 */
23
public class TmpStream extends HttpServlet
24
{
25
 
26
    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(TmpStream.class);
27
 
851 jmachado 28
    /** sss requests for both HTTP <code>GET</code> and <code>POST</code> methods.
18 jmachado 29
     * @param request servlet request
30
     * @param response servlet response
31
     */
32
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
33
            throws ServletException, 1.5.0/docs/api/java/io/IOException.html">IOException
34
    {
35
        1.5.0/docs/api/java/lang/String.html">String path = request.getPathInfo();
36
        1.5.0/docs/api/java/io/File.html">File f = new 1.5.0/docs/api/java/io/File.html">File(Globals.TMP_DIR + path);
37
        1.5.0/docs/api/java/lang/String.html">String mimeType = MimeTypeGuesser.getInstance().guessMimeType(f);
38
        response.setContentType(mimeType);
39
        response.setContentLength((int) f.length());
223 jmachado 40
        response.setHeader("Content-disposition","filename=" + path.substring(1));
18 jmachado 41
        logger.info("Opening tmp file:" + f.getAbsolutePath() + " with mime-type:" + mimeType);
42
        5+0%2Fdocs%2Fapi+InputStream">InputStream stream = new 1.5.0/docs/api/java/io/FileInputStream.html">FileInputStream(new 1.5.0/docs/api/java/io/File.html">File(Globals.TMP_DIR + path));
43
        byte[] buf = new byte[1024];
44
        int readedBytes;
45
        5+0%2Fdocs%2Fapi+OutputStream">OutputStream os = response.getOutputStream();
46
        while((readedBytes = stream.read(buf)) > 0)
47
        {
48
            os.write(buf,0,readedBytes);
49
        }
50
        os.close();
51
        stream.close();
52
    }
53
 
54
 
55
    /** Handles the HTTP <code>GET</code> method.
56
     * @param request servlet request
57
     * @param response servlet response
58
     */
59
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
60
            throws ServletException, 1.5.0/docs/api/java/io/IOException.html">IOException {
61
        processRequest(request, response);
62
    }
63
 
64
    /** Handles the HTTP <code>POST</code> method.
65
     * @param request servlet request
66
     * @param response servlet response
67
     */
68
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
69
            throws ServletException, 1.5.0/docs/api/java/io/IOException.html">IOException {
70
        processRequest(request, response);
71
    }
72
 
73
    /** Returns a short description of the servlet.
74
     */
75
    public 1.5.0/docs/api/java/lang/String.html">String getServletInfo() {
76
        return "Proxy Servlet to get pages form static web page servers";
77
    }
78
    // </editor-fold>
79
}