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 |
} |