有没有办法使用AJAX通过HTTP POST请求图像文件,然后使用HTML中的数据创建新图像?由于您无法使用IMG标记执行此操作,是否可以使用Image javascript对象执行此操作?
答案 0 :(得分:5)
是的,这是可能的。
当您的serverscript打开图像文件并将其编码为base64
字符串时,几乎所有浏览器(IE7及以下版本除外)都可以处理。例如:
jQuery('<img>', {
src: 'data:image/jpeg;base64,' + someBase64EncodedString
}).appendTo(document.body);
这是一个真实的例子,可以在这里找到:https://github.com/jAndreas/Supply
答案 1 :(得分:1)
答案 2 :(得分:1)
如果它返回base64编码的图像数据,你可以使用data URIs和Canvas进行。
一些“伪”代码(使用PHP和JS + jQuery)来演示你可以做什么。
服务器:
$image = new Imagick($imagePath);
echo 'data:image/png;base64,' . base64_encode($image);
客户端:
$.ajax({
method: "post",
url: "/foo/bar.php",
success: function (data) {
$("<img />").attr("src", data).appendTo("#myContainer");
}
});
答案 3 :(得分:1)