Ajax并返回由PHP GD创建的图像
我有一个PHP脚本,用PHP GD生成一个图像。 生成映像后,它会保存它,并在Ajax调用时发送此输出:
imagejpeg($img_data, 'filename.jpg'); echo '';
之后,图像显示在页面上,一切都很好。 但是,我不想每次都创建一个图像。 有没有什么方法可以通过Ajax返回$raw_data
字符串并显示图像? 我试过这样的:
echo $img_data;
但没有运气,只返回的东西是少数?
这是我的jQuery Ajax代码:
$.ajax({ type: 'POST', data: { action: 'update_image', //some instructions for creating the image }, url: 'script.php', success: function(msg) { $('#somediv').append(msg); } });
base64对图像进行编码并返回,然后你可以做一个
在PHP方面
$image = base64_encode($imageGDRender); echo json_encode(array('image'=>$image));
那会让你的json回到你的jquery
然后在ajax方面
$.ajax({ ... success: function(data) { var base64Image = data.image; ...now put it in your image $('#image').attr('src','data:image...'+base64Image); })....
这是解决方案:
PHP代码:
ob_start(); imagejpeg($im); $outputBuffer = ob_get_clean(); $base64 = base64_encode($outputBuffer); echo '';
在用户端(在JQuery中):
success: function(data) { $('#somediv').append(data); }
你应该在做echo $img_data;
之前修改标题echo $img_data;
header("Content-Type: image/jpeg"); header("Content-Length: " .sizeof($img_data));