首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过AJAX传递dataURL

问通过AJAX传递dataURL
EN

Stack Overflow用户
提问于 2012-03-05 22:46:51
回答 3查看 910关注 0票数 0

我正在尝试将从HTML5画布生成的dataURL保存到我的mysql数据库中。

我使用ajax设置来提取我创建的名为" dataURL“的var,并使用以下代码将dataURL设置为画布的img:

代码语言:javascript
复制
dataURL = oCanvas.toDataURL();

我的问题是画布的dataURL有很多字符不能很好地用于ajax,所以我需要一种方法来编码它或以不同的方式操作它,这样我的最终结果就可以保存到mysql数据库中,然后再“解码”再次显示。

我知道我的AJAX可以工作,因为如果我将var dataURL设置为类似于“奶酪”的值,它会在数据库中保存为奶酪。

任何帮助都将不胜感激!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-13 08:14:50

实际上,我最终设置了一个事件,这样当图像绘制完成时,它会将dataURL设置为隐藏的表单元素。不再需要通过ajax :)传递它。不过,还是要谢谢你的建议。

票数 0
EN

Stack Overflow用户

发布于 2012-03-05 23:38:45

您从toDataUrl收到的数据格式如下:

代码语言:javascript
复制
 data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD.... (very long string)

首先将接收到的数据过滤为data:image/png;base64,后的部分

然后使用您的语言提供的任何Base64库将其解码为字节数组(或blob)。如果您使用的是Java:Apache Commons Codec

下面是groovy中的一个示例:

代码语言:javascript
复制
def bytes = new Base64().decode(filteredData) as byte[]

您可以将解码结果保存到数据库中(稍后检索)

票数 2
EN

Stack Overflow用户

发布于 2012-03-26 04:40:05

Base64编码几乎需要4倍的字节来对图像进行编码。无论您是使用ajax还是常规表单,建议在传输base64之前使用window.atob进行解码。IE当然不支持它,但是this looks like a shim。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9568599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档