import com.google.appengine.repackaged.com.google.api.client.util.Base64; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import gwtupload.server.gae.MemCacheFileItemFactory; import gwtupload.server.UploadAction; import gwtupload.server.exceptions.UploadActionException; public class Base64Servlet extends UploadAction { private static final long serialVersionUID = 1L; public Base64Servlet() { super(); } @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.service(request, response); } @Override protected FileItemFactory getFileItemFactory(long requestSize) { return new MemCacheFileItemFactory((int) requestSize); } @Override public String executeAction(HttpServletRequest request, List<FileItem> sessionFiles) throws UploadActionException { FileItem fi = sessionFiles.get(0); if (fi.isFormField()) { fi = sessionFiles.get(1); } byte[] bs = fi.get(); String base64Picture = "data:" + fi.getContentType() + ";base64, "; base64Picture += new String(Base64.encodeBase64(bs)); removeSessionFileItems(request, true); logger.info("Base64Servlet returns " + bs.length + " " + fi.getSize() + " " + base64Picture.length()); return base64Picture; } }