我正在尝试实现一个非常基本的功能,将图像从 Android、iPhone 和网络客户端上传到谷歌应用引擎。感谢这个博客,我做了一个初始版本的实现:
然而,上传图像似乎总是有一个两步过程:
- 使用 createUploadUrl() 获取要 POST 的初始上传 URL。我附上了我使用的代码片段:
公共类 CreateUploadUrl 扩展 HttpServlet { @覆盖 public void doGet(HttpServletRequest req, HttpServletResponse resp) 抛出 IOException { BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); String uploadURL = blobstoreService.createUploadUrl("/image/uploadImage"); resp.setContentType("text/plain"); resp.getWriter().println(uploadURL); } }
- 使用您刚刚“获得”的 URL 发布图像
公共无效doPost(HttpServletRequest req,HttpServletResponse res)抛出ServletException,IOException { BlobKey blobKey = ParameterExtractor.getBlobParameter(req, "blob-key", blobstoreService); 如果(blobKey == null){ log.info("blob ID 为空。POST 失败"); } 别的 { log.info("ze 业务逻辑"); } }
我的问题是是否可以一步完成,因为现在所有客户端都需要执行 http GET 来获取上传 URL,然后执行 http POST 来发布图像。
不可能只用预定义的 URL 做一个 Http POST。
谢谢拉贾特