Statistics
| Revision:

root / tmp / trunk / servidor / WPS_Callejero_Server / DownloadWPSResults / src / es / logex / tigris / addins / DownloaderServlet.java @ 26635

History | View | Annotate | Download (2.58 KB)

1
package es.logex.tigris.addins;
2

    
3
import java.io.File;
4
import java.io.FileInputStream;
5
import java.io.IOException;
6

    
7
import javax.servlet.ServletConfig;
8
import javax.servlet.ServletException;
9
import javax.servlet.ServletOutputStream;
10
import javax.servlet.http.HttpServletRequest;
11
import javax.servlet.http.HttpServletResponse;
12

    
13
import org.omg.CORBA_2_3.portable.OutputStream;
14

    
15
/**
16
 * Servlet implementation class for Servlet: DownloaderServlet
17
 *
18
 */
19
 public class DownloaderServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
20
   static final long serialVersionUID = 1L;
21
   private static String absoluteFSPath = null;
22
   private boolean deleteAfeterDownload = false;
23
    /* (non-Java-doc)
24
         * @see javax.servlet.http.HttpServlet#HttpServlet()
25
         */
26
        public DownloaderServlet() {
27
                super();
28
        }           
29
        
30
        /* (non-Java-doc)
31
         * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
32
         */
33
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
34
                // TODO Auto-generated method stub
35
                processDownload(request, response);
36
                
37
                
38
        }
39

    
40
        private void processDownload(HttpServletRequest request,
41
                        HttpServletResponse response) throws IOException {
42
                String file = request.getParameter("file");
43
                if(file == null)
44
                {
45
                        response.sendError(HttpServletResponse.SC_BAD_REQUEST);
46
                        return;
47
                }
48
                FileInputStream fin = null;
49
                File absoluteFile = null;
50
                try
51
                {
52
                        absoluteFile = new File(new File(absoluteFSPath),file);
53
                        fin = new FileInputStream(absoluteFile);
54
                        long fLen = absoluteFile.length();
55
                        response.setContentType("text/xml;subtype=gml/2.1.2");
56
                        response.setContentLength((int)fLen);
57
                        ServletOutputStream os = response.getOutputStream();
58
                        int len=0;
59
                        byte [] data = new byte[10240];
60
                        try
61
                        {
62
                                while ( (len=fin.read(data)) > 0)
63
                                {
64
                                        os.write(data,0,len);
65
                                }
66
        
67
                                os.flush();
68
                        }
69
                        catch(IOException ex)
70
                        {
71
                                
72
                        }
73
                        fin.close();
74

    
75
                }
76
                catch(Exception ex)
77
                {
78
                        response.sendError(HttpServletResponse.SC_NOT_FOUND);
79
                        return;
80
                }
81
                if(absoluteFile!=null)
82
                {
83
                        absoluteFile.delete();
84
                }
85
        }
86

    
87
        @Override
88
        public void init(ServletConfig config) throws ServletException {
89
                // TODO Auto-generated method stub
90
                super.init(config);
91
                absoluteFSPath = config.getInitParameter("absoluteFSPath");
92
                if(absoluteFSPath == null)
93
                {
94
                        throw new ServletException("Me falta el parametro requerido 'absoluteFSPath'");
95
                }
96
                
97
                String strDeleteAfterDownload = config.getInitParameter("deleteAfterDownload");
98
                deleteAfeterDownload = Boolean.parseBoolean(strDeleteAfterDownload);
99
                
100
        }          
101
        
102
}