python - 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)
解决方案
以下代码适用于我:
#!/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)
推荐阅读
- flutter - Flutter在尝试创建ExpansionPanelList时无法在Widget上方找到正确的Provider<>
- events - 事件驱动架构:重新处理死信队列中的事件导致域模型状态不正确
- flutter - Flutter Firestore 捕获错误
- r - 在某些焦点组之前和之后使用来自组的值
- c# - 包未正确加载
- java - 从 Json 列表 java 中获取值
- swift - 如何获取存储在变量中的数组值并在表格视图中显示它们?
- c# - C# - 计算目录中的所有文件,包括 Zip 中的 Zip 等
- reactjs - 打字稿:具有枚举类型参数的函数分配给具有字符串参数类型的回调
- jquery - 日期范围选择器问题