有没有办法在Javascript中加载图像,并通过HTTP POST检索数据?

时间:2011-06-21 19:58:03

标签: javascript html ajax

有没有办法使用AJAX通过HTTP POST请求图像文件,然后使用HTML中的数据创建新图像?由于您无法使用IMG标记执行此操作,是否可以使用Image javascript对象执行此操作?

4 个答案:

答案 0 :(得分:5)

是的,这是可能的。

当您的serverscript打开图像文件并将其编码为base64字符串时,几乎所有浏览器(IE7及以下版本除外)都可以处理。例如:

jQuery('<img>', {
    src: 'data:image/jpeg;base64,' + someBase64EncodedString
}).appendTo(document.body);

这是一个真实的例子,可以在这里找到:https://github.com/jAndreas/Supply

答案 1 :(得分:1)

您可能想要了解如何将base64编码数据嵌入图像。

这是一篇引导您完成它的文章。

http://danielmclaren.com/node/90

答案 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)