通过CGI程序加载PNG图像失败,错误

时间:2014-04-10 05:54:53

标签: apache bash html cgi

我正在编写一个cgi脚本来在浏览器中显示png图像。当用户点击“提交”时在HTML页面中,调用CGI程序来显示图像。

但这不适合我。该脚本正在尝试在浏览器中打开PNG图像,但该图像包含以下错误消息

"The image “http://localhost/cgi-bin/image.sh?subbtn=Submit” cannot be  displayed, because it contains errors."

以下是CGI代码的片段。

!/bin/bash

echo "Content-type: text/html"
echo "Content-type: image/png"

echo ""

echo  "<html>"
echo "<body>"
echo "Hi"

echo "<img src="/home/zaman/ssdggraph/SSDGhistory.png" alt="DG-Reports">"
echo "</body>"
echo "</html>"

如果我从上面的代码中删除了以下行,则会显示"DG-Reports"标记中alt部分中的文字img src

echo "Content-type: image/png"

此外,如果我在纯HTML页面中编写相同的代码,PNG图像显示正常。

请在代码中提示我缺少哪些内容以显示图片而没有任何错误?

2 个答案:

答案 0 :(得分:2)

您应该指定可从浏览器访问的<IMG> src属性的网址。

/home/zaman/ssdggraph/SSDGhistory.png不太可能满足该要求。 (你应该有点像http://path_known_to_webserver/SSDGhistory.png)。

您可能还应该阅读网页和cgi脚本的概念。我会称CGI为“显示图像”,一些程序将在上述URL中引用,并在网页引用图像数据并浏览器请求后动态流出图像数据。这可能是你的意思,但有点不清楚。

答案 1 :(得分:0)

您必须使用内容类型,然后使用空行:

#!/bin/bash
echo "Content-type: image/png"
echo
cat /var/www/img/your-image.png