gpt4 book ai didi

java - 使用 BlobstoreService 和 ImageService 上传/提供从 HTML5 canvas 绘制的图像

转载 作者:行者123 更新时间:2023-11-29 22:39:25 24 4
gpt4 key购买 nike

我正在使用 Java 开发 Appengine 应用程序,它允许用户上传通过名为 PaintWeb 的 HTML5 Canvas 库绘制的图像( http://code.google.com/p/paintweb/)。

目前我有一个从 XMLHttpRequest POST 接收的 servletpaintweb javascript 库作为表单编码图像。

  1. Paintweb.js 库发送 XMLHttpRequest POST

      send       = 'dataURL=' + encodeURIComponent(ev.dataURL), 
    headers = {'Content-Type': 'application/x-www-form-urlencoded'};
  2. 自定义 servlet 将表单编码的图像数据解码为 blob,并且将其与关联的绘图实体一起存储在数据存储区中

  3. 自定义 servlet 将数据存储中的 Blob 作为ContentType("image/png") 我很好奇我是否可以使用新的 BlobstoreService 和 ImageService上传我的 HTML5 Canvas 图像并将它们作为纯 Blob 提供的功能(如本教程中所示 GWT BlobstoreService and ImageService )

根据文档(http://code.google.com/appengine/docs/java/blobstore/overview.html#Uploading_a_Blob),主要的停止点似乎是我需要 POST 一个表单:

 <input type="file" name="myFile"> 

我认为 Paintweb 不可能做到这一点。如果服务器端有某种方法可以将 blob 存储在 Blobstorage(而不是数据存储区)中,那么可能会有一个变通办法您可以获得不使用 CPU 配额来提供图像的好处。

使用 Appengine URL Fetch 是否可能甚至是一个好主意服务并将图像 blob 上传转发到 Blobstorage来自服务器端的“createUploadURL()”。

http://code.google.com/appengine/docs/java/urlfetch/usingjavanet.html

这似乎是可能的,但不确定从长远来看它是否会节省我的资源(图片是简单的小图,可以比上传时间查看更多次所以我觉得我会受益于 BlobstoreService 的存储/服务。

最佳答案

这里最好的选择是使用 XMLHTTPRequest,其中包含创建的图像的多部分/表单数据编码主体。这可以构建为匹配 blobstore 的预期。要遵循的过程将是这样的:

  1. 调用返回新 blobstore 上传 URL 的 JSON API
  2. 构造一个 MIME 消息,其中包含图像数据以及您要包含的任何其他字段。
  3. 使用 XMLHTTPRequest 将表单上传到 blobstore。

为此,您需要自己构建 MIME 消息,或者找一个 Javascript 库来为您完成。

关于java - 使用 BlobstoreService 和 ImageService 上传/提供从 HTML5 canvas 绘制的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3747433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com