通过 ajax 从 PHP 发送二进制图像数据


Sending binary image data from PHP over ajax?

假设我在PHP中做了以下操作:

$image = imagecreatefromjpeg('myImage.jpg);

有没有办法将$image的图像数据转换为可以在我的 AJAX 响应中发送的字符串?

像这样的东西应该可以从图像中获取 base64 编码的字符串:

<?php
$image = imagecreatefromjpeg('myImage.jpg');
ob_start();
imagejpeg($image);
$imagestring = ob_get_contents();
ob_end_clean();
$encoded = base64_encode($imagestring);
?>
<pre><?php echo $encoded ?></pre>
<img src="data://image/jpeg;base64,<?php echo $encoded ?>" alt="myImage" />

这会将 base64 编码的图像输出为字符串,并且还将使用该编码字符串显示图像。

使用 base64 或其他一些可用的二进制>文本编码方案,并将其与 ajax 中的数据一起传递,并在客户端进行解码。

PHP 有 base64 函数,见 http://php.net/manual/en/function.base64-encode.php