用perl生成HTML格式的输出图像

用perl生成HTML格式的输出图像,html,image,perl,cgi,Html,Image,Perl,Cgi,我尝试了主题中解释的第一个解决方案 一切都很完美。。。除了在浏览器中显示图像之外,它显示了许多奇怪的字符(类似于我在记事本中打开图像时的情况) 这是我正在使用的代码: #perl CGI code lines before select(STDOUT); $| = 1; #unbuffer STDOUT print "Content-type: image/jgp\n\n"; open (IMAGE, '<', '/absolute_route_to_image/logo.jpg')

我尝试了主题中解释的第一个解决方案

一切都很完美。。。除了在浏览器中显示图像之外,它显示了许多奇怪的字符(类似于我在记事本中打开图像时的情况)

这是我正在使用的代码:

#perl CGI code lines before
select(STDOUT); $| = 1;   #unbuffer STDOUT
print "Content-type: image/jgp\n\n";

open (IMAGE, '<', '/absolute_route_to_image/logo.jpg');
print <IMAGE>;
close IMAGE;
#rest of HTML code, displayed in a print statement in perl
#之前的perl CGI代码行
选择(标准输出);$|=1;#取消缓冲标准输出
打印“内容类型:图像/jgp\n\n”;
打开(图像,'
HTML代码的其余部分

一个HTTP响应可以包括一个资源。在HTML文档的中间,你不能把一堆原始JPEG数据分割出来。浏览器正在处理HTML,而不是JPEG。

通常,您需要让浏览器发出第二个HTTP请求以获取图像(使用
元素的
src
属性中指定的URL)

但是,可以使用
数据:
方案以URL的形式表示整个资源。可以帮助您生成它们


此外,JPEG的内容类型为.Not
image/jgp
和Not
image/jpg
。您可以看到浏览器如何处理未知mime类型。

显示您正在使用的代码,很可能您没有正确设置内容类型。检查:谢谢您的回复!这是我的代码部分,我正在尝试显示image(如果我把代码放错了,请原谅,我最近加入了这个伟大的社区,所以还是入门级):#选择(标准输出);$|=1之前还有一些代码行;#取消缓冲标准输出“内容类型:image/jpg\n\n”;打开(image,'
print "Content-type: image/jgp\n\n";