package org.kvj.lima1.pg.sync.rest; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.amber.oauth2.common.OAuth; import org.kvj.lima1.pg.sync.data.DAO; import org.kvj.lima1.pg.sync.data.FileStorage; public class DownloadServlet extends OAuthSecuredServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String app = req.getParameter("app"); String name = req.getParameter("name"); log.info("Getting file: " + name); File file = FileStorage.getFile(app, (String) req.getAttribute(OAuth.OAUTH_CLIENT_ID), name); if (null == file) { throw new ServletException("File not found"); } else { resp.setHeader("Content-Type", "application/octet-stream"); String width = req.getParameter("width"); if (null != width) { boolean done = FileStorage.resizeImageFile(file, Integer.parseInt(width), resp.getOutputStream()); if (done) { resp.flushBuffer(); return; } } FileInputStream stream = new FileInputStream(file); DAO.copyStream(stream, resp.getOutputStream()); stream.close(); resp.flushBuffer(); } } }