我有一个Python cgi,它将svg转换为png文件,我希望将转换后的输出下载到用户的磁盘。
#the conversion stuff
print "Content-Type: image/png"
print "Content-Disposition: attachment; filename='pythonchart.png'"
print
print open("http:\\localhost\myproj\pythonchart.png").read()
这会产生一个包含‰PNG
的png文件。
请帮忙吗?
答案 0 :(得分:1)
您应该尝试以二进制模式open('filename', 'rb').read()
答案 1 :(得分:0)
您正在从open()
返回的文本模式流中读取二进制数据,并将二进制数据写入文本模式标准输出流。您必须以二进制模式打开文件,并将stdout转换为二进制模式。
import sys
print "Content-Type: image/png"
print "Content-Disposition: attachment; filename='pythonchart.png'"
print
if sys.platform == "win32":
import os, msvcrt
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
print open("C:\\wamp\\www\\myproj\\pythonchart.png", "rb").read()