Advertisement
slugmandrew

slugmandrew's UploadServiceImpl

Apr 9th, 2013
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 3.80 KB | None | 0 0
  1. package com.utilitiessavings.testapp.server;
  2.  
  3. import java.io.IOException;
  4. import java.util.Enumeration;
  5. import java.util.Map;
  6.  
  7. import javax.inject.Inject;
  8. import javax.inject.Singleton;
  9. import javax.servlet.ServletException;
  10. import javax.servlet.http.HttpServlet;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13.  
  14. import com.google.appengine.api.blobstore.BlobKey;
  15. import com.google.appengine.api.blobstore.BlobstoreService;
  16. import com.google.appengine.api.blobstore.BlobstoreServiceFactory;
  17. import com.google.appengine.api.datastore.DatastoreService;
  18. import com.google.appengine.api.datastore.DatastoreServiceFactory;
  19. import com.google.appengine.api.datastore.Entity;
  20. import com.google.appengine.api.datastore.EntityNotFoundException;
  21. import com.google.appengine.api.datastore.Key;
  22. import com.google.appengine.api.datastore.KeyFactory;
  23. import com.utilitiessavings.testapp.shared.BlobFile;
  24.  
  25. //The FormPanel must submit to a servlet that extends HttpServlet
  26. //RemoteServiceServlet cannot be used
  27. @Singleton
  28. @SuppressWarnings("serial")
  29. public class UploadServiceImpl extends HttpServlet
  30. {
  31.     // Start Blobstore and Objectify Sessions
  32.     BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
  33.     DatastoreService datastoreService = DatastoreServiceFactory.getDatastoreService();
  34.    
  35.     @Inject
  36.     static Dao dao;
  37.    
  38.     // @Inject
  39.     public UploadServiceImpl()
  40.     {
  41.         super();
  42.        
  43.         System.out.println("UploadServiceImpl constructed");
  44.        
  45.         // this.dao = dao;
  46.     }
  47.    
  48.    
  49.     // @Override
  50.     // public void init() throws ServletException
  51.     // {
  52.     // super.init();
  53.     //
  54.     // System.out.println("UploadServiceImpl init");
  55.     // }
  56.    
  57.     // Override the doPost method to store the Blob's meta-data
  58.     @Override
  59.     public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
  60.     {
  61.         // Map<String, List<BlobKey>> blobs = blobstoreService.getUploads(req);
  62.         Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req);
  63.         BlobKey blobKey = blobs.get("upload"); // 'upload' is the name of the FileUpload entity
  64.        
  65.         // Get the parameters from the request to populate the Picture object
  66.         BlobFile blobFile = new BlobFile();
  67.        
  68.         // use low-level API to get filesize from BlobInfo entity
  69.         Long filesize = new Long(0);
  70.         Entity entity = null;
  71.         Key k = KeyFactory.createKey("__BlobInfo__", blobKey.getKeyString());
  72.        
  73.         try
  74.         {
  75.             entity = datastoreService.get(k);
  76.         }
  77.         catch(EntityNotFoundException e)
  78.         {
  79.             e.printStackTrace();
  80.         }
  81.        
  82.         filesize = (Long) entity.getProperty("size");
  83.         blobFile.setFilesize(filesize); // sets filesize as Long
  84.        
  85.         // Map the fileURL to the blobservice servlet, which will serve the image
  86.         blobFile.setFileUrl("/testapp4/blobservice?blob-key=" + blobKey.getKeyString());
  87.         blobFile.setBlobKey(blobKey.getKeyString());
  88.        
  89.         // set the filename and supplierCode fields from the hidden form fields
  90.         blobFile.setFilename(req.getParameter("filename"));
  91.         blobFile.setSupplierCode(req.getParameter("supplierCode"));
  92.        
  93.         // set the category from the ListBox
  94.         blobFile.setCategory(req.getParameter("category"));
  95.         blobFile.setUser(req.getParameter("user"));
  96.        
  97.         Enumeration<?> e = req.getParameterNames();
  98.         while(e.hasMoreElements())
  99.         {
  100.             System.out.println(e.nextElement());
  101.         }
  102.        
  103.         dao.put(blobFile);
  104.        
  105.         // Redirect recursively to this servlet (calls doGet)
  106.         res.sendRedirect("/testapp4/uploadservice?id=" + blobFile.getId());
  107.     }
  108.    
  109.     @Override
  110.     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
  111.     {
  112.        
  113.         // Send the meta-data id back to the client in the HttpServletResponse response
  114.         String id = req.getParameter("id");
  115.         resp.setHeader("Content-Type", "text/html");
  116.         resp.getWriter().println(id);
  117.        
  118.     }
  119.    
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement