Awesome! Here's my demo/learning/testing app: http://github.com/ikai/gwt-gae-image-gallery
Please excuse the spaghetti code all over the place passing LoginInfo around in the GWT client code. On Tue, Aug 31, 2010 at 11:51 PM, branflake2267 <[email protected]>wrote: > Hi, > > http://demofileuploadgae.appspot.com/ - My simple demo of the use of > the Blobstore and GWT. I'm pretty impressed at how well it works! > > http://code.google.com/p/gwt-examples/source/browse/trunk/DemoUpload/ > - GWT GAE project source for the demo. > > I figured out how to use the low level api to query the __BlobInfo_ > entities so I could return a list. More custom filters could be added > to drill down your list of blobs that you have in the store. Also, > with GWT you have to use an rpc call to get init a url for file > upload, so the servlet knows what to do with it. > > Brandon Donnelson > http://gwt-examples.googlecode.com > > > Worth noting: > > http://code.google.com/p/gwt-examples/source/browse/trunk/DemoUpload/src/org/gonevertical/upload/server/BlobInfoJdo.java > - source for below > public BlobData[] getBlobs(BlobDataFilter filter) { > > Entity[] entities = null; > try { > DatastoreService datastore = > DatastoreServiceFactory.getDatastoreService(); > PreparedQuery pq = datastore.prepare(new Query("__BlobInfo__")); > List<Entity> entList = > pq.asList(FetchOptions.Builder.withLimit((int) > filter.getRangeFinish()).offset((int) filter.getRangeStart())); > > entities = new Entity[entList.size()]; > entList.toArray(entities); > > } finally { > pm.close(); > } > > BlobData[] blobData = convert(entities); > > return blobData; > } > > private BlobData[] convert(Entity[] es) { > if (es == null || es.length == 0) { > return null; > } > > BlobData[] b = new BlobData[es.length]; > for (int i=0; i < es.length; i++) { > > Map<String, Object> p = es[i].getProperties(); > > long id = es[i].getKey().getId(); > Key key = es[i].getKey(); > String ct = (String) es[i].getProperty("content_type"); > String fn = (String) es[i].getProperty("filename"); > Long size = (Long) es[i].getProperty("size"); > Date creation = (Date) es[i].getProperty("creation"); > > b[i] = new BlobData(); > b[i].setKey(key.getName()); > b[i].setContentType(ct); > b[i].setFilename(fn); > b[i].setSize(size); > b[i].setCreation(creation); > > } > > return b; > } > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > > -- Ikai Lan Developer Programs Engineer, Google App Engine Blog: http://googleappengine.blogspot.com Twitter: http://twitter.com/app_engine Reddit: http://www.reddit.com/r/appengine -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
