1

给定 javascript 中的画布,保存到后端服务器的正常工作流程如下:

  1. 创建画布元素
  2. 绘制/修改画布
  3. 调用 canvas.toDataURL()
  4. 将此画布的 base64 表示上传到您的后端服务器(基本 ajax)。

由于对 toDataURL() 的调用可能非常慢,我想知道是否可以直接将图像字节上传到后端服务器,而不是使用 toDataURL() 的 base64 方式。

有任何想法吗?

4

1 回答 1

4

使用返回 blob 或二进制对象的toBlob,而不是 toDataURL。您可以将结果直接发送到服务器。虽然通话是异步的

myCanvas.toBlob(function(myBlob) {
  // send blob to server here!!
}, "image/jpeg", 0.5);

注意:较旧的 MS 不支持它,但请参阅顶部的链接以获取 shim。那里有更好的垫片。

于 2016-07-19T20:52:18.440 回答