从jquery通过AJAX发送图像数据

时间:2013-10-01 19:10:51

标签: javascript php jquery ajax image

我需要使用AJAX从客户端向我的PHP服务器发送图像数据(data:image / png; base64)。我的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

2 个答案:

答案 0 :(得分:1)

问题结果与此帖中描述(和解决)相同:

Blob data replace '+' with space

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

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

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

答案 1 :(得分:0)

显示图片时尝试此操作。

echo '<img src="data:image/png;base64,' . base64_encode($blob_data) . '"/>