• 在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