我怎样才能将jpg图像从我的服务器发送到我的c#app?

时间:2012-06-23 14:44:19

标签: php

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

1 个答案:

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