【问题标题】:bash cgi won't return imagebash cgi 不会返回图像
【发布时间】:2014-05-29 18:16:16
【问题描述】:

我们有一个制作 RRD 数据库的监控系统。我正在寻找从这个 RRD 文件为我们的 HTML 页面创建图表的最简单的方法。所以我不想将它们存储在文件中。我正在尝试创建简单的 BASH CGI 脚本,它将输出图像数据,所以我可以这样做:

<img src="/cgi-bin/graph.cgi?param1=abc"></img>

首先,我正在尝试创建简单的 CGI 脚本,它将向我发送 PNG 图像。这不起作用:

#!/bin/bash
echo -e "Content-type: image/png\n\n"
cat image.png

但是当我将它重写为 PERL 时,它确实有效:

#!/usr/bin/perl
print "Content-type: image/png\n\n";
open(IMG, "image.png");
print while <IMG>;
close(IMG);
exit 0;

有什么区别?我真的很想在 BASH 中这样做。谢谢。

【问题讨论】:

    标签: perl bash cgi rrd


    【解决方案1】:

    没有-n 开关输出第三个换行符,所以应该是

    echo -ne "Content-type: image/png\n\n"
    

    echo -e "Content-type: image/png\n"
    

    来自man echo

      -n     do not output the trailing newline
    

    【讨论】:

    • 如果还是不行,请检查图片权限。
    猜你喜欢
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 2012-05-06
    • 1970-01-01
    相关资源
    最近更新 更多