package com.buglabs.app.bugdash2.controller.system; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.buglabs.app.bugdash2.controller.ApplicationController; import com.buglabs.osgi.sewing.pub.util.RequestParameters; import freemarker.template.TemplateModelRoot; public class FileDownloadController extends ApplicationController { public TemplateModelRoot get(RequestParameters params, HttpServletRequest req, HttpServletResponse resp) { resp.setContentType("application/x-download"); String filePath = req.getContextPath().substring("/download?".length()); File requested = new File(filePath); int length = 0; OutputStream out; try { out = resp.getOutputStream(); byte[] bbuf = new byte[512]; DataInputStream in = new DataInputStream(new FileInputStream(requested)); while ((in != null) && ((length = in.read(bbuf)) != -1)) { out.write(bbuf,0,length); } in.close(); out.flush(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }