如何在Python CGI页面中加载/显示图片

如何在Python CGI页面中加载/显示图片,python,html,cgi,Python,Html,Cgi,我使用Python和CGI编写了一个小调查。我正在尝试使用正常的 “”“ 为什么?(这是一个非常小的jpg文件)您的apache被配置为使用cgi-bin目录作为cgi脚本文件夹,因此任何试图从该文件夹获取文件的请求apache都会尝试将其作为cgi脚本执行。要使您的图像可见,请将其移动到www/html文件夹。您的apache被配置为使用cgi-bin目录作为cgi脚本文件夹,因此任何请求尝试从此文件夹获取文件时,apache尝试将其作为CGI脚本执行。要使图像可见,请将其移动到www/h

我使用Python和CGI编写了一个小调查。我正在尝试使用正常的

“”“


为什么?(这是一个非常小的jpg文件)

您的apache被配置为使用cgi-bin目录作为cgi脚本文件夹,因此任何试图从该文件夹获取文件的请求apache都会尝试将其作为cgi脚本执行。要使您的图像可见,请将其移动到www/html文件夹。

您的apache被配置为使用cgi-bin目录作为cgi脚本文件夹,因此任何请求尝试从此文件夹获取文件时,apache尝试将其作为CGI脚本执行。要使图像可见,请将其移动到www/html文件夹

print "Content-type: text/html; image/jpeg"
print
print """<html> 
<head>
<title>You are going to be redirected</title> 
</head> 
<body bgcolor = #14b585>
<br>
 <p align=center><font>Helloooo</font></p>
 <img src="cat.jpeg" alt="cat" width="304" height="228"/> 
 <form action="./sample.py" method="post">
<p align=center><input type="submit" value="YES!" /></p>
 </form>
 </body>
 </html>
不要将标题更改为该格式。一个文档不能有多个内容类型(排除多部分文档,但浏览器不支持它们,并且格式不正确)

您正在交付一个HTML文档,其中包含对图像的引用。图像将是一个单独的请求和响应

print "Content-type: text/html; image/jpeg"
或者更好:

print "Content-type: text/html"
(假设您使用的是utf-8,应该是)

print”“”
缺少您的Doctype。这将触发不需要的怪癖模式。您还有大量遗留的表示性标记,这些标记应该被CSS所取代

print """<html> 

上下文表明图像是装饰性的,因此替代文本可能应该是
(请参阅),但实际引用图像没有问题

但是即使图片和我的cgi脚本在同一个目录中

因为HTML似乎还可以。您需要检查图像是否正确

你能通过直接输入URL来访问图像吗

当您尝试时,web服务器日志会说什么

您的服务器可能被配置为尝试将目录中的所有内容都视为可执行文件,而不管文件扩展名是什么,因此它可能尝试将映像当作CGI程序来运行(显然会失败)。如果是这样,则可以移动映像或更改服务器的配置

我刚刚注意到这样的评论:

我在我的浏览器中这样做了:localhost/cgi-bin/cat.jpg,它得到了一个错误,我检查了日志,它执行了格式错误:'/home/hossein/public_html/cgi-bin/cat.jpg'的执行失败

这就是正在发生的事情。移动图像是最简单的解决方案

不要把标题改成那样。一个文档不能有多个内容类型(不包括多部分文档,但浏览器不支持它们,这不是正确的格式)

您正在交付一个HTML文档,其中包含对图像的引用。图像将是一个单独的请求和响应

print "Content-type: text/html; image/jpeg"
或者更好:

print "Content-type: text/html"
(假设您使用的是utf-8,应该是)

print”“”
您的Doctype丢失。这将触发怪癖模式,这是不可取的。您还有大量遗留的表示标记,应该用CSS替换

print """<html> 

上下文表明图像是装饰性的,因此替代文本可能应该是
(请参阅),但实际引用图像没有问题

但是即使图片和我的cgi脚本在同一个目录中

因为HTML看起来还可以。你需要检查图像是否正确

你能通过直接输入URL来访问图像吗

当您尝试时,web服务器日志会说什么

您的服务器可能被配置为尝试将目录中的所有内容都视为可执行文件,而不管文件扩展名是什么,因此它可能尝试将映像当作CGI程序来运行(这显然会失败)。如果是这样,则您可以移动映像或更改服务器的配置

我刚刚注意到这样的评论:

我在我的浏览器中这样做了:localhost/cgi-bin/cat.jpg,它得到了一个错误,我检查了日志,它执行了格式错误:'/home/hossein/public_html/cgi-bin/cat.jpg'的执行失败


这就是正在发生的事情。移动图像是最简单的解决方案。

我们应该猜一下代码的其余部分是什么样子吗?我添加了其余部分,希望能有所帮助。图像的URL在浏览器中显示的是什么?它只显示照片的占位符,带有一个损坏的图片图标和一个文本。是的,这就是我理解的。没有得到确切的信息你的意思是我们应该猜猜代码的其余部分是什么样子吗?我添加了其余部分,希望它能帮助我们在浏览器中显示图像的URL是什么?它只显示照片的占位符,图片图标和文本已损坏。是的,这就是我理解的…没有明白你的确切意思