package org.kvj.lima1.pg.sync.rest; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.amber.oauth2.common.OAuth; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.codehaus.jettison.json.JSONObject; import org.kvj.lima1.pg.sync.data.DAO; import org.kvj.lima1.pg.sync.data.FileStorage; public class UploadServlet extends OAuthSecuredServlet { private static final long serialVersionUID = 1L; @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String name = req.getParameter("name"); String app = req.getParameter("app"); FileItem item = null; try { @SuppressWarnings("unchecked") List<FileItem> items = new ServletFileUpload( new DiskFileItemFactory()).parseRequest(req); for (FileItem fileItem : items) { if (!fileItem.isFormField()) { item = fileItem; break; } } } catch (Exception e) { log.error("Error parsing upload request", e); throw new ServletException("Invalid request"); } log.debug("Upload: " + name + " - " + item); if (null != name && null != item) { String result = FileStorage.upload( DAO.getDataSource(getServletContext()), app, (String) req.getAttribute(OAuth.OAUTH_CLIENT_ID), item.getInputStream(), name); if (null != result) { throw new ServletException(result); } writeJSON(new JSONObject(), resp); } else { throw new ServletException("Invalid parameters"); } } // @Override // protected JSONObject get(HttpServletRequest req) throws Exception { // JSONObject result = new JSONObject(); // result.put( // "u", // blobstoreService.createUploadUrl("/rest/file/upload?name=" // + req.getParameter("name") + "&oauth_token=" // + req.getAttribute(OAuth.OAUTH_TOKEN) + "&app=" // + req.getParameter("app"))); // return result; // } }