我的服务器正在运行php,我希望它能够向我发送图像。例如“profile.jpg”。
在C#中我只是用源填充位图图像,但是如何创建一个源,一个输出图像二进制数据的文件?
我有这个:
<?php
$file = 'profil.jpg';
$image = imagecreatefromjpeg($file);
imagealphablending($image, false);
imagesavealpha($image, true);
// start buffering
ob_start();
imagepng($image);
$contents = ob_get_contents();
ob_end_clean();
echo "<img src='data:image/jpeg;base64,".base64_encode($contents)."' />";
imagedestroy($image);
?>
但它会输出HTML,我可以echo base64_encode($contents)
吗?
答案 0 :(得分:1)
我说你错过了标题,而不是清理缓冲区你应该刷新它,就像那样(我的头顶)< / p>
<?php
$file = 'profil.jpg';
$image = imagecreatefromjpeg($file);
imagealphablending($image, false);
imagesavealpha($image, true);
// start buffering
ob_start();
header('Content-Description: File Transfer');
header('Content-type: image/png');
header('Content-Disposition: attachment; filename="'.$file.'"');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
imagepng($image);
$contents = ob_get_contents();
// echo $contents;
// ob_end_flulsh();
/* OR */
ob_get_fllush();
echo "<img src='data:image/jpeg;base64,".base64_encode($contents)."' />";
imagedestroy($image);
?>
这样的事情。您当然可以在标题中添加更多信息或更少信息,具体取决于您在另一端需要的内容。 HTTP/1.1: Header Field Definitions。另外Output Control Fctns