3

按照此blobstore 文档了解如何上传到 Blobstore。它显示了通过 JSP + Servlet 方法上传。

由于我的应用程序是基于 GWT 的,因此我需要为 GWT RPC(而不是 JSP)进行调整。

所以在我的应用 RPC 服务实现中:

public class MyServiceImpl extends RemoteServiceServlet implements
    MyService {

  public String getUploadUrl() {
    BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
    return blobstoreService.createUploadUrl("/upload")
  }
}

这是正确的方法还是有其他方法可以正确地做到这一点?我还没有尝试过这段代码。

将要上传的二进制文件的范围从字节到最大 2MB。

按照此blobstore 文档了解如何上传到 Blobstore。它显示了通过 JSP + Servlet 方法上传。

由于我的应用程序是基于 GWT 的,因此我需要为 GWT RPC(而不是 JSP)进行调整。

所以在我的应用 RPC 服务实现中:

public class MyServiceImpl extends RemoteServiceServlet implements
    MyService {

  public String getUploadUrl() {
    BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
    return blobstoreService.createUploadUrl("/upload")
  }
}

这是正确的方法还是有其他方法可以正确地做到这一点?我还没有尝试过这段代码。

将要上传的二进制文件的范围从字节到最大 2MB。

当我尝试这段代码时,这是服务器端控制台日志:

May 07, 2012 6:35:53 AM com.google.appengine.tools.development.LocalResourceFileServlet doGet
WARNING: No file found for: /crossdomain.xml

然后在客户端 GWT.log 上,Rpc 能够生成一个 URL,但是它不起作用:

[INFO] [blobrpc] - Success fetch upload url: http://127.0.0.1:8888/_ah/upload/aglub19hcHBfaWRyGwsSFV9fQmxvYlVwbG9hZFNlc3Npb25fXxgDDA
4

2 回答 2

2

createUploadUrl()创建一个期望带有 Content-type header 的 HTTP POST 的 Url multipart/form-data

如果您想使用 GWT-RPC,则需要使用Blobstore FileService API在服务器端创建文件。

于 2012-05-06T21:05:14.090 回答
0

如果我们要将文件发布到该 URL,它将保存在 blobstore 中。但是请注意,本地开发 Web 服务器的默认 URL 是http://127.0.0.1:8888/,而 blobstore 生成的 URL 是 http://:8888/。这将在以后引起问题,因为出于安全原因,Plupload 将无法将文件 POST 到另一个域。这只发生在本地开发服务器上,发布的应用程序只有一个 URL。通过在 Eclipse 中编辑运行配置来修复它,将 -bindAddress 添加到参数中。这将导致本地开发服务器在 http://:8888/ 上托管 Web 应用程序。您可能需要在 GWT 浏览器插件中允许它在此更改后加载应用程序。

使用 GWT 和 AppEngine Blobstore 上传多个文件?

于 2016-04-11T09:18:35.663 回答