文件上传到AppEngine Blobstore

时间:2012-05-06 16:38:18

标签: java google-app-engine gwt

关于如何上传到Blobstore的blobstore document 之后。它显示了通过JSP + Servlet方法上传。

由于我的应用程序基于GWT,我需要调整for 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 document 之后。它显示了通过JSP + Servlet方法上传。

由于我的应用程序基于GWT,我需要调整for 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

2 个答案:

答案 0 :(得分:2)

createUploadUrl()创建一个期望带有内容类型标头multipart/form-data的HTTP POST的Url。

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

答案 1 :(得分:0)

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

Multiple file upload using GWT and AppEngine Blobstore?