python、cgi-bin中向浏览器返回图像
我正在尝试在 cgi-bin 中设置一个 python 脚本,该脚本仅返回内容类型为 image/png 的标头并返回图像。我尝试打开图像并使用 print 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 中加载页面时,我得到 The image http://localhost/cgi-bin/test.py" 无法显示,因为它包含错误。
I'm trying to set up a python script in cgi-bin that simply returns a header with content-type: image/png and returns the image. I've tried opening the image and returning it with print f.read()
but that isn't working.
EDIT:
the code I'm trying to use is:
print "Content-type: image/png\n\n"
with open("/home/user/tmp/image.png", "r") as f:
print f.read()
This is using apache on ubuntu server 10.04. When I load the page in chrome I get the broken image image, and when I load the page in firefox I get The image http://localhost/cgi-bin/test.py" cannot be displayed, because it contains errors.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
"rb"
(在基于 Windows 的环境中通常是这种情况。将其写入 sys.stdout
print "Content-type: image/png\n\n"
实际上打印 3 个换行符(因为 print 会自动添加)末尾有一个“\n”,这可能会破坏您的 PNG 文件。尝试:
"rb"
(in windows based environments it's usually the case.write
it tosys.stdout
.print "Content-type: image/png\n\n"
actually prints 3 newlines (as print automatically adds one "\n" in the end. This may break your PNG file.Try:
标题后是否包含空行?如果没有,那么标题还没有结束!
打印'内容类型:image/png'
打印
打印 f.read()
Are you including the blank line after the header? If not, it's not the end of your headers!
print 'Content-type: image/png'
print
print f.read()