0

我的服务器正在运行 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)吗?

4

1 回答 1

1

我会说你错过了标题,而不是清理缓冲区,你应该刷新它,类似的东西(在我的头顶上)

<?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:标头字段定义。也输出控制功能

于 2012-06-23T15:09:16.600 回答