【问题标题】:How to put a picture in HTML using CGI Perl?如何使用 CGI Perl 将图片放入 HTML 中?
【发布时间】:2016-10-15 00:02:06
【问题描述】:

我正在创建一个非常简单的 HTML 表单。我已将表格包含在 CGI 文件中。我正在使用 perl 脚本。我尝试使用以下 CGI 脚本在我的表单中包含图片:

print "<img src=picture1.jpg style=width:600px;height:300px;>";

问题是表单中的图片没有显示,但是当我从浏览器访问表单时,我没有收到任何错误,其他一切正常。

Screenshot of the problem

【问题讨论】:

  • 请注意,HTML 不包含图片,仅包含对图片的引用。浏览器解析对 URL 的引用并获取它以检索图片。因此,您还需要确保浏览器在获取该 URL 时确实获取了图片。

标签: html perl cgi


【解决方案1】:

从您的屏幕截图来看,我猜想src='picture1.jpg' 指定的图像来源或位置不正确。

可能的原因有:

  • 文件picture1.jpg在您的服务器上不存在
  • 文件picture1.jpg 位于不同的目录中

我敢打赌这是第二个问题。您的 CGI 脚本很可能位于名为 cgi-bin 的目录中,因此通过使用 src='picture1.jpg',您可以在此 cgi-bin 目录中查找图片。

您确定您的图片位于此处:cgi-bin/picture1.jpg?很可能不会。

我猜图片在其他地方,这意味着您必须为其设置正确的路径,如下例所示:

img src='../picture1.jpg'

这意味着“向上一级目录查找picture1.jpg”。

img src='../images/picture1.jpg'

这意味着:“上一级目录并在image 目录中查找picture1.jpg”。

img src='/html/images/picture1.jpg'

这意味着:“进入你网站的根目录,找到html目录,然后找到image目录,最后在里面找到picture1.jpg。

根据服务器的目录结构调整路径后,图像应该会按需要显示。此外,正如其他答案中提到的,您应该始终正确格式化您的 HTML 属性。

【讨论】:

    【解决方案2】:

    确保您使用正确的属性格式

    print "<img src='picture1.jpg' style='width:600px;height:300px;'>";
    

    【讨论】:

    • 感谢您的回答,但我仍然看到相同的结果。我已经编辑了我的问题并附上了我看到的截图。
    【解决方案3】:

    你需要在html中使用双引号。

    print q{&lt;img src="picture1.jpg" width="600" height="300"&gt;};

    【讨论】:

      【解决方案4】:

      表格中的图片没有显示,但我没有收到任何错误

      您在浏览器中没有收到任何错误,但您检查过网络服务器错误日志吗?

      您没有说明您的 CGI 程序和图像都实际存储在 Web 服务器上的哪个位置,因此很难确定问题出在哪里,但我希望您在 Web 服务器日志中遇到错误会把事情弄清楚。

      如果我不得不猜测(我没有,但无论如何我都会猜测!)我会说问题出在图像的位置。在 Web 服务器上设置 CGI 程序的常用方法是将某个目录(通常称为 cgi-bin)指定为包含所有 CGI 程序的位置。但实际上,这意味着您对您的 Web 服务器说“此目录中的所有内容都是 CGI 程序 - 任何时候您收到对该目录中资源的请求,您都需要执行该程序并将结果返回给浏览器”。

      因此,网络服务器认为该目录中的所有内容都是 CGI 程序。这意味着您不能将图像文件放在此目录中。因为如果网络服务器收到/cgi-bin/picture1.jpg 的请求,它会认为picture.jpg 是返回图像的程序——所以它会尝试执行图像文件。而且这行不通,您会在错误日志中收到 500 错误。

      你给我们看的代码是这样的:

      print "<img src=picture1.jpg style=width:600px;height:300px;>";
      

      因为你有src=picture1.jpg,所以网络服务器假定图像文件在当前目录中——这将是包含 CGI 程序的目录。所以很有可能这就是我上面描述的问题。

      另一个选项是您已经配置了您的网络服务器,以便任何具有特定扩展名(通常为.cgi)的东西都应被视为 CGI 程序。如果是这样的话,那么我之前的解释并不能解释你的问题。在这种情况下,很可能是您刚刚获取了图像文件的 URL 错误,并且您会在 Web 服务器错误日志中收到 404 错误。

      但在这两种情况下,几乎肯定会有更多有用的信息在 Web 服务器错误日志中等着您。请查看那里并将详细信息添加到您的问题中。

      【讨论】:

        猜你喜欢
        • 2017-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-06
        • 2013-12-29
        • 1970-01-01
        • 1970-01-01
        • 2012-01-19
        相关资源
        最近更新 更多