将图像返回到python中的浏览器,cgi-bin

将图像返回到python中的浏览器,cgi-bin,python,image,apache2,cgi-bin,Python,Image,Apache2,Cgi Bin,我试图在cgi-bin中设置一个python脚本,它只返回一个内容类型为image/png的头并返回图像。我尝试打开图像并使用打印f.read()返回它,但这不起作用 编辑: 我尝试使用的代码是: print "Content-type: image/png\n\n" with open("/home/user/tmp/image.png", "r") as f: print f.read() 这是在ubuntu服务器10.04上使用apache。当我在chrome中加载页面时,我会得

我试图在cgi-bin中设置一个python脚本,它只返回一个内容类型为image/png的头并返回图像。我尝试打开图像并使用打印f.read()返回它,但这不起作用

编辑: 我尝试使用的代码是:

print "Content-type: image/png\n\n"
with open("/home/user/tmp/image.png", "r") as f:
    print f.read()
这是在ubuntu服务器10.04上使用apache。当我在chrome中加载页面时,我会得到损坏的图像,当我在firefox中加载页面时,我会得到
图像http://localhost/cgi-bin/test.py无法显示,因为它包含错误。

  • 您可能需要以“rb”的形式打开文件(在基于windows的环境中通常是这样)
  • 简单地打印可能不起作用(因为它添加了“\n”和其他内容),最好是
    将其写入
    sys.stdout
  • 语句
    print“Content-type:image/png\n\n”
    实际上打印了3行换行符(因为print会在末尾自动添加一行“\n”。这可能会破坏png文件
  • 尝试:

  • HTML响应要求回车,换行

  • 你是否在标题后面包括了空白行?如果不是,那不是你的页眉的结尾!

    打印“内容类型:图像/png”
    打印
    打印f.read()

    如果你发布代码,你会得到更好的回复。此外,如果你能描述正在发生的事情,而不仅仅是“那不起作用”“,我们将从中获得更多工作线索。是的,#3就是它。感谢您的跟进。@adamk如果我想从脚本中执行某个内容,然后执行它,它对我无效。假设我想创建一个文件,然后关闭它。它返回图像,但该文件不会在服务器上创建。有任何输入吗?#!/usr/bin/env python import sys f=open('workfile','w')f.close()filename=“th_goldhill.png”sys.stdout.write”(“内容类型:image/png\r\n\r\n”+文件(filename,“rb”).read())如何确保
    所有字符串都正确读取?
    。我尝试了此方法数百万次,但没有任何成功。您对
    打印功能有何想法?版主在哪里?不要浪费用户的生命!-1
    
    sys.stdout.write( "Content-type: image/png\r\n\r\n" + file(filename,"rb").read() )