从jquery通过AJAX发送图像数据

我需要使用AJAX从客户端发送图像数据(data:image / png; base64)到我的PHP服务器。 我的AJAX调用如下所示:(form_data包含图像)

$.ajax({ url: global_siteurl+'/save_image', data: form_data, dataType: 'json', type: 'post', contentType: "application/x-www-form-urlencoded; charset=UTF-8", success: function (retval) { process_save_image(retval); } }); 

然后我将编码的图像数据作为blob存储在数据库中(是的 – 背后的故事!)。 当我检索图像数据时,它似乎已损坏并且无法正确显示。 几乎就像在图像数据中引入了换行符和空格一样。 我在ajax调用中缺少任何参数吗? 关于可能出错的任何想法? 我可以发送的图像数据是否有大小限制?

这是一个漫长的4天追逐这一个。

Mmiz

问题结果与此post中描述的(并已解决)相同:

Blob数据用空格替换’+’

结果我需要在我获取/发布它时使URL的blob数据安全。 在PHP服务器端,我使用了上面发布的function。 在Javascript方面,我使用了以下函数:

http://notepad2.blogspot.com/2012/08/javascript-make-base64-encoded-string.html

花了很多时间盯着编码的图像数据注意到+ / =被替换了。

显示图像时尝试此操作。

 echo '