首页 > 解决方案 > python3.x:使用 cgi 在浏览器中显示 pdf

问题描述

我正在将一些代码从 python2 升级到 python3。我有以下 cgi 脚本可以在浏览器中显示 pdf。它在python2中工作正常,但在python3中不起作用。在 python 3 中,没有服务器错误,而是我从浏览器收到错误消息,显示“加载 PDF 文档失败”。

我认为问题与编码有关,但搜索了几个小时后我不知所措。当前的 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)

标签: pythonpython-3.xpdfcgi

解决方案


以下代码适用于我:

#!/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)

推荐阅读