【问题标题】:How to use BlobStore for uploading a file of DOC and PDF type如何使用 BlobStore 上传 DOC 和 PDF 类型的文件
【发布时间】:2012-03-24 20:55:46
【问题描述】:

我正在使用 GWT 中的一个 web 应用程序,它上传一个 >1 MB 的文件并输入 doc 和 pdf。 我正在使用 BlobStore。 实际上我必须将此文件存储在存储库中。此存储库的会话已经创建并且工作正常。

代码

  // Get The URL
  public void onClick(ClickEvent event) {
          System.out.println("blob" +blobServices);
        blobServices
            .getBlobStoreUploadUrl(callback) ;
      }
    });

上面的 RPC 调用工作正常,我可以获取 URL。 现在我必须将此 URL 与用于上传文件的 servlet 一起使用。

   AsyncCallback callback = new AsyncCallback() {

    public void onFailure(Throwable caught) {
        // TODO Auto-generated method stub
        caught.printStackTrace();
    }

    public void onSuccess(Object result) {
    String tmp = result.toString();
        uploadForm.setAction(tmp);

        // Submit the form to complete the upload
        uploadForm.submit();
        uploadForm.reset();
    }
};

在服务器端

 public class UploadServiceImpl extends HttpServlet {

       BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();

 public void doPost(HttpServletRequest req, HttpServletResponse res)
      throws ServletException, IOException {

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

 }

我不知道这之后该怎么办。谁能告诉我理解这部分的代码或链接。 我想要文件的大小和文件的内容。 最重要的是文件类型是 .doc 和 .pdf 而不是图像。

【问题讨论】:

    标签: java google-app-engine gwt servlets blobstore


    【解决方案1】:

    由于在 blobstore 调用期间您无法获取文件名和类型,因此我所做的是在客户端表单上捕获文件名并将其存储在隐藏字段中。当用户使用上传表单时,您可以从您使用的任何选择器中获取文件名。然后,当您发布到 UploadServiceImpl 时,您可以从中获取文件名

    req.getParameter(hiddenfieldname)。

    【讨论】:

      猜你喜欢
      • 2014-03-21
      • 1970-01-01
      • 2017-12-06
      • 2014-04-19
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      相关资源
      最近更新 更多