Mercurial > hg > STI-GWT
view src/econnect/wp3_3/server/ExportServlet.java @ 15:175c1eecaf84
added export kml feature (not finished)
author | Sebastian Kruse <skruse@mpiwg-berlin.mpg.de> |
---|---|
date | Mon, 26 Nov 2012 14:40:43 +0100 |
parents | |
children |
line wrap: on
line source
package econnect.wp3_3.server; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ExportServlet extends HttpServlet { private void streamFileTo(HttpServletResponse response, File file) throws IOException, FileNotFoundException { response.setBufferSize(32768); int bufSize = response.getBufferSize(); OutputStream os = response.getOutputStream(); FileInputStream fis = new FileInputStream(file); byte[] buffer = new byte[bufSize]; int bytesRead = 0; while ((bytesRead = fis.read(buffer)) > 0) { os.write(buffer, 0, bytesRead); } os.flush(); fis.close(); } private void prepareResponseFor(HttpServletResponse response, File file) { StringBuilder type = new StringBuilder("attachment; filename="); type.append(file.getName()); response.setContentLength((int) file.length()); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", type.toString()); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException { OutputStream out = null; File exportedFile = null; try { String fileName = request.getParameter("ExportedFilename"); exportedFile = new File("kmlexport/" + fileName); prepareResponseFor(response, exportedFile); streamFileTo(response, exportedFile); } catch (Exception e) { throw new ServletException("Exception in Export Servlet", e); } finally { if (out != null) { try {out.close();} catch(Exception e){} } if (exportedFile != null) { exportedFile.delete(); } } } }