2011-06-29 65 views
0

如果我正在使用GWT文件部件和表单面板,有人可以解释如何处理在谷歌应用程序引擎上的blobstore上传吗?GWT GAE通过Blob上传

回答

1

Google blobstore专门设计用于通过http上传和提供blob。 Blobstore服务(使用BlobstoreServiceFactory.getBlobstoreService()获得)生成http后操作,供您在html表单中使用。通过发布文件将其上传到blobstore。当你生成这个动作你提供的路径,你可以访问上传blob键处理程序(servlet的):

Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req); 
BlobKey blobKey = blobs.get("data"); 

。注意,“数据”是您的窗体文件中的字段。你所拥有的只是blob(你的文件)的关键。从这里你采取控制 - 你可以保存该键后和/或即可食用页面上的斑点(使用键):

BlobKey blobKey = new BlobKey(req.getParameter("blob-key")); 
blobstoreService.serve(blobKey, res); 

当然,详见谷歌documentation

,它与谷歌的映射集成(起码的map-reduce)服务(工作正在进行中),让您处理由线上传的斑点线文件Blob存储区的一个不错的功能:http://ikaisays.com/2010/08/

+0

在客户端,有什么我应该设置表单的动作为 – Noor

+0

表单将如下所示: 'String uploadUrl = blobstoreService.createUploadUrl(“/ upload”); out.println(“

“);' 其中/ upload是映射到我的servlet,它处理事后将blob保存到blobstore(答案中的第一个代码片段)。 – topchef

+0

我使用GWT GAE上载,它成功上传给我servlet.gupld?BLOB键= lSPbUItHU2v6jKhMUrcF7gDQUlofRktEPkocaPpO2Y4wwOQwd1-Tt51HUpDom3HPKAix3xxMbUD3eFnpQoLVIvXwYuJ_i7EU30RCTVwRJf_fvg但是当我使用URL设置,它ouputting文件未找到 – Noor