文件上传到AppEngine Blobstore

关于如何上传到Blobstore的这个blobstore文档之后。 它显示了通过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文档之后。 它显示了通过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 

createUploadUrl()创建一个Url,它需要一个带有Content-type头部multipart/form-data的HTTP POST。

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

如果我们要将文件发布到该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进行多文件上传?