【发布时间】:2012-01-12 21:08:54
【问题描述】:
我正在尝试使用 IIS 上的 python cgi 将 png 图像返回到浏览器。
我遇到了同样的问题: Return an image to the browser in python, cgi-bin
但是那里提供的解决方案在我的机器上不起作用。
以下是我的情况的简要介绍:
我在 C:\logs\demo.png 上有一个 png 图像,这个图像非常好,可以通过可视图像查看器打开;
我有一个 python 脚本,代码如下:
print 'HTTP/1.1 200 OK' print 'Content-Type:image/png\n' print file('c:\\logs\\demo.png', 'rb').read()
3 .当我访问相应的 url 时,没有返回任何内容,并且 firefox 说图像包含错误。响应中返回的长度也很小。
对这个问题有什么想法吗?我快疯了~
感谢任何回复:)
【问题讨论】:
-
print 不能完全保留内容 - 对于初学者来说,它会在文件数据之后添加换行符。我会使用 sys.stdout.write() 来确保你写的正是你的意思。编辑:另外,响应大小有多远 - 文件有多大以及报告的响应大小是多少? Firefox 和 IIS 同意吗?
-
sys.stdout.write() 也不起作用,和这里的 print 一样。图片40KB左右,但响应只有1KB左右。
-
而奇怪的是,在另一个脚本中,我使用了sys.stdout.write,这个write返回了40KB的内容,但是还是没有图片显示。我已经仔细检查了标题和内容之间的两个换行符。