我正在创建一个非常简单的HTML表单。我已将表单包含在CGI文件中。我正在使用perl脚本。我尝试使用以下CGI脚本在表单中包含图片:
print "<img src=picture1.jpg style=width:600px;height:300px;>";
这个问题是表单中的图片没有显示,但是当我从浏览器访问表单时,我没有收到任何错误,其他一切正常。
答案 0 :(得分:2)
通过查看屏幕截图,我猜测指定为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'
这意味着:“转到一个目录级别并查找picture1.jpg
目录中的image
。”
img src='/html/images/picture1.jpg'
这意味着:“转到您网站的根目录,找到html
目录,然后找到image
目录,最后找到picture1.jpg
。
根据服务器的目录结构调整路径后,图像应根据需要显示。此外,正如其他答案中所述,您应该始终正确格式化HTML属性。
答案 1 :(得分:0)
确保使用正确的属性格式
print "<img src='picture1.jpg' style='width:600px;height:300px;'>";
答案 2 :(得分:0)
你需要在html中使用双引号。
print q{<img src="picture1.jpg" width="600" height="300">};
答案 3 :(得分:0)
表单中的图片没有显示,但我没有收到任何错误
您在浏览器中没有收到任何错误,但是您是否检查过Web服务器错误日志?
您没有说您的CGI程序和图像实际存储在您的Web服务器上的位置,因此很难确定问题是什么,但我希望您在Web服务器日志中收到错误会清理的。
如果我不得不猜测(我没有,但我还是要去!)我会说问题出在图像的位置上。在Web服务器上设置CGI程序的常用方法是将某个目录(通常称为cgi-bin
)指定为包含所有CGI程序的位置。但实际上,这意味着您要对您的Web服务器说“此目录中的所有内容都是CGI程序 - 只要您在此目录中获得资源请求,就需要执行程序并将结果返回给浏览器”。
因此,Web服务器认为该目录中的所有是CGI程序。这意味着您无法将图像文件放在此目录中。因为如果Web服务器收到/cgi-bin/picture1.jpg
的请求,它会认为picture
。jpg是返回图像的程序 - 因此它将尝试执行图像文件。这不是goitn工作,你会在错误日志中得到500错误。
您向我们展示的代码是:
print "<img src=picture1.jpg style=width:600px;height:300px;>";
因为您有src=picture1.jpg
,所以Web服务器假定图像文件位于当前目录中 - 该目录将是包含CGI程序的目录。所以很有可能这就是我上面描述的问题。
另一个选项是您已配置Web服务器,以便具有特定扩展名(通常为.cgi
)的任何内容都应被视为CGI程序。如果是这种情况,那么我之前的解释并不能解释你的问题。在这种情况下,您很可能只是错误地获取了图像文件的URL,并且在Web服务器错误日志中会出现404错误。
但在这两种情况下,Web服务器错误日志中几乎肯定会有更多有用的信息等着您。请查看并在您的问题中添加详细信息。