在Windows环境下让 Python CGI 输出二进制文件

服务器是Windows的,现在的需求是通过一个CGI脚本输出一个pdf(或者是一个图片)。发现出来的文件的大小变大了,然后内容显示不出来或者乱码,估计是\r\n导致的问题。折腾了一下午,找到了答案。现在的代码如下:

filename = r'D:\example.pdf'  #我这里要输出pdf
print 'Content-type: application/pdf\n\n'

import msvcrt
msvcrt.setmode(1, os.O_BINARY)   #使stdout为二进制

pdf_file = open(filename, 'rb')
data = pdf_file.read()
pdf_file.close()
print data

 


发表评论