Python 如何在web上提供PDF文件?
我有以下代码,它似乎提供一个没有任何内容的PDF:Python 如何在web上提供PDF文件?,python,html,python-3.x,Python,Html,Python 3.x,我有以下代码,它似乎提供一个没有任何内容的PDF: from pathlib import Path pdf = Path("url/to/file.pdf") print(f"Content-Type: application/pdf;\r\n") print(pdf.read_bytes()) 任何正确提供此PDF的提示都会很有帮助 编辑:在上下文中,我试图提供PDF文件,并在服务器上隐藏原始PDF文件路径。我真的不知道你的问题是关于什么的。它的代码似乎与问题无关。它似乎假设在本地文件系
from pathlib import Path
pdf = Path("url/to/file.pdf")
print(f"Content-Type: application/pdf;\r\n")
print(pdf.read_bytes())
任何正确提供此PDF的提示都会很有帮助
编辑:在上下文中,我试图提供PDF文件,并在服务器上隐藏原始PDF文件路径。我真的不知道你的问题是关于什么的。它的代码似乎与问题无关。它似乎假设在本地文件系统中找到pdf(在open中构建?),然后打印其内容(?)。您是否使用一些框架(flask/django) 如果通过动态服务,您考虑基于某个模板动态创建pdf:
另外,添加更多上下文我不是Python开发人员,所以我不能具体帮助您,但有几件事 如果Phython脚本在同一响应中输出标题和内容(例如通过CGI),那么在标题和内容之间需要有一个空行。现在您有一个
\r\n
。添加第二个\r\n
另一件事是,您应该找到一种方法来流式处理该文件的输出,而不是读取其所有字节并打印它们
最后,我不知道Python中的
print()。通过将一个流直接输送到输出,同样可以解决这个问题。如果其他人需要知道,我可以找到自己问题的答案:
pdf = Path("url/to/file.pdf")
print("Content-type: application/pdf\r\n\r\n")
stdout.flush()
stdout.buffer.write(pdf.read_bytes())
我试着添加上下文。基本上,我试图提供PDF文件,同时掩盖PDF的实际文件路径。也就是说,我想将PDF保存在一个不可公开访问的目录中,但当授权用户请求PDF时,我想验证他们是否被授权,如果是,则提供PDF。这不是真正的答案。为了澄清问题,使用评论而不是答案