Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用BlobStore上载文档和PDF类型的文件_Java_Google App Engine_Gwt_Servlets_Blobstore - Fatal编程技术网

Java 如何使用BlobStore上载文档和PDF类型的文件

Java 如何使用BlobStore上载文档和PDF类型的文件,java,google-app-engine,gwt,servlets,blobstore,Java,Google App Engine,Gwt,Servlets,Blobstore,我正在GWT中尝试一个Web应用程序,它上载一个大于1MB的文件,并键入doc和pdf。 我正在使用BlobStore。 实际上,我必须将此文件存储在存储库中。此存储库的会话已经创建,并且工作正常 代码 上面的RPC调用工作正常,我可以获取URL。 现在我必须将这个URL与用于上传文件的servlet一起使用 AsyncCallback callback = new AsyncCallback() { public void onFailure(Throwable caught)

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

代码

上面的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");
  }

 }
公共类UploadServiceImpl扩展了HttpServlet{ BlobstoreService BlobstoreService=BlobstoreServiceFactory.getBlobstoreService(); public void doPost(HttpServletRequest-req、HttpServletResponse-res) 抛出ServletException、IOException{ Map blobs=blobstoreService.getUploadedBlobs(req); BlobKey-BlobKey=blobs.get(“上传”); } } 我不知道这之后该怎么办。任何人都可以告诉我代码或链接来理解这部分。 我想要文件的大小和文件的内容。
最重要的是文件的类型是.doc和.pdf,而不是image。

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

req.getParameter(hiddenfieldname)

 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");
  }

 }