从 Python 的 http.server 提供文件 - 使用文件正确响应



我只是尝试从http.server提供PDF文件。这是我的代码:

from http.server import BaseHTTPRequestHandler, HTTPServer
class MyServer(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'application/pdf')
        self.send_header('Content-Disposition', 'attachment; filename="file.pdf"')
        self.end_headers()
        # not sure about this part below
        self.wfile.write(open('/filepath/file.pdf', 'rb'))

myServer = HTTPServer(('localhost', 8080), MyServer)
myServer.serve_forever()
myServer.server_close()

我不确定现在如何对file.pdf做出反应,而且我没有到达任何地方。我相信标题是正确的,但我无法将实际文件发送。

看来您正在正确设置标头。我已经完成了您只使用文本数据(CSV)来做的事情。如图所示,您的代码一个问题是您正在尝试编写文件对象而不是实际数据。您需要进行read才能实际获取二进制数据。

def do_GET(self):
    # Your header stuff here...
    # Open the file
    with open('/filepath/file.pdf', 'rb') as file: 
        self.wfile.write(file.read()) # Read the file and send the contents 

希望这至少能使您更近。

相关内容

  • 没有找到相关文章

最新更新