所以我试图用一个http页面显示一个图像,就像你在浏览器上用“View Image”得到的那样。我得到了这么多,我不知道还有什么我必须做的,让Firefox阅读我该死的图像数据。需要使用Perl显示base64图像的标题?
open (my $fh, "<", "/where/the/base64_encoded_img/is");
local $/= undef;
my $image = <$fh>;
close $fh;
local $/= "\n";
use MIME::Base64;
my $alpha;
$alpha .= "Content-type: image/png;base64 \n"; #our image is a PNG
$alpha .= "Content-length: " . MIME::Base64::encoded_base64_length($image) . " \n\n ";
$alpha .= " ";
#~ $alpha .= "<img src='$image'/>";
$alpha .= "$image";
print $alpha;
考虑到我尝试都具有和不具有“数据:our_data_type;字符集= UTF-8; BASE64,” 散列图像之前串(该字符串被包含在$图像内变量)。
这是一个CGI脚本?不需要base64作为图像的HTTP响应。只需发送图像!如果您直接发送PNG以响应HTTP请求(而不是将其嵌入到某个HTML中,则返回相同的响应),那么'data:'URI方案是无关紧要的。 –
'$ image'是否包含原始图像数据?然后,在输出之前,您需要对其进行Base64编码。 – mob
我不是专家,但我从未见过Content-Type的附加符号,附加了base64。我会用Content-Transer-Encoding来指定base64的东西。另外,您的图像是否已经在base64文件中?如果没有,你可能会遇到问题。 –