【问题标题】:Output image in HTML formed with perl用 perl 形成的 HTML 格式的输出图像
【发布时间】:2015-11-02 18:28:54
【问题描述】:

我尝试了Perl CGI display image to browser from file主题中解释的第一个解决方案。

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

这是我正在使用的代码:

#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

感谢任何帮助。谢谢!!

【问题讨论】:

  • 显示你正在使用的代码
  • 很可能您没有正确设置 Content-Type。签出:stackoverflow.com/questions/22523718/…
  • 感谢您的回复!这是我试图显示图像的代码部分(如果我放错了代码,请原谅,我最近加入了这个很棒的社区,所以仍然是入门级): #some more code lines before select(STDOUT); $| = 1; #unbuffer STDOUT print "Content-type: image/jpg\n\n";打开(图像,';关闭图像; #在此之后,我从#perl开始构建HTML脚本的其余部分

标签: html image perl cgi


【解决方案1】:

HTML 代码的其余部分

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

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

虽然可以使用data: 方案以URL 的形式表达整个资源。 URI::data module 可以帮助您生成它们。

print "Content-type: image/jgp\n\n";

另外,JPEG 的内容类型是image/jpeg。不是image/jgp,也不是image/jpg。您正在了解浏览器如何处理未知的 mime 类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多