【问题标题】:GWT GAE Upload through Blob通过 Blob 上传 GWT GAE
【发布时间】:2011-06-29 02:43:59
【问题描述】:

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

【问题讨论】:

    标签: gwt file-upload google-cloud-datastore blobstore


    【解决方案1】:
    【解决方案2】:

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

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

    请注意,“数据”是表单中的文件字段。您所拥有的只是 blob(您的文件)的密钥。从这里您可以控制 - 您可以保存此密钥以供以后使用和/或立即在页面上提供 blob(使用密钥):

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

    当然,详情见谷歌documentation

    blobstore 的一个不错的功能是它与 Google Mapper(基本的 map-reduce)服务(正在进行中)集成,让您可以逐行处理作为 blob 上传的文件:http://ikaisays.com/2010/08/

    【讨论】:

    • 在客户端,我应该将表单的操作设置为什么
    • 表单看起来像:String uploadUrl = blobstoreService.createUploadUrl("/upload"); out.println("&lt;form action='" + uploadUrl + "' method='post' enctype='multipart/form-data'&gt;"); 其中 /upload 是到我的 servlet 的映射,它处理 blob 保存到 blobstore 之后的事情(答案中的第一个代码 sn-p)。
    • I'm using the GWT GAE upload, it is successfully uploading giving me servlet.gupld?blob-key=lSPbUItHU2v6jKhMUrcF7gDQUlofRktEPkocaPpO2Y4wwOQwd1-Tt51HUpDom3HPKAix3xxMbUD3eFnpQoLVIvXwYuJ_i7EU30RCTVwRJf_fvg but when i setting using url, it is ouputting file not found
    猜你喜欢
    • 2012-05-23
    • 2023-04-11
    • 2013-12-16
    • 2013-09-26
    • 2012-04-06
    • 2013-09-13
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多