python3.x: 用cgi在浏览器中显示pdf

python3.x: display pdf in browser with cgi

我正在将一些代码从 python2 升级到 python3。我有以下 cgi 脚本在浏览器中显示 pdf。它在 python2 中工作正常,但在 python3 中不起作用。在 python 3 中,没有服务器错误,而是我从浏览器中收到错误 "Failed to load PDF document."

我认为问题与编码有关,但我搜索了几个小时后一头雾水。当前的 CGI 脚本在这里:

#!/usr/local/bin/python3.7

filename='file.pdf'
file = open(filename,'rb')
fileData=file.read()
file.close() 

print('Content-Disposition: inline; filename="out.pdf"')
print('Content-type: application/pdf')
print('')
print(fileData)

以下代码对我有用:

#!/usr/local/bin/python3.7

filename='file.pdf'
file = open(filename,'rb')
fileData=file.read()
file.close() 

print('Content-Disposition: inline; filename="out.pdf"')
print('Content-type: application/pdf')
print('')
sys.stdout.flush()
sys.stdout.buffer.write(fileData)