Заставьте HTTPServer загружать файлы вместо отображения текста - PullRequest
0 голосов
/ 21 июня 2019

Я работаю над проектом, в котором клиент должен иметь возможность щелкнуть ссылку для загрузки пакетного файла с другого сервера.

Поэтому моя проблема заключается в том, что содержимое пакетного файла отображается в виде текста внутриChrome - но не загружает вложение, как я хочу (например, кнопка Сохранить как).

Я пытался использовать атрибут загрузки HTTP, но это работает только по относительному пути, а не http://example.com/batch.bat

<a href="http://100.100.100.10:8000/L33480.bat" download="" target="_blank">Download batch</a>

Я наткнулся на похожие посты, но, похоже, ни одна из них не решила мою проблему.

Вот мой код прямо сейчас.Однако файлы ведут себя так же, как если бы я просто набрал обычный python -m http.server, отображающий содержимое пакетного файла в Chrome.

from http.server import BaseHTTPRequestHandler, HTTPServer

class MyServer(BaseHTTPRequestHandler):

    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'application/bat')
        self.send_header('Content-Disposition', 'attachment; filename="test.bat"')
        self.end_headers()

        # Open the file
        with open('/myFile.bat', 'rb') as file: 
            self.wfile.write(file.read()) # Read the file and send the contents 

myServer = HTTPServer(('localhost', 8000), MyServer)
myServer.serve_forever()
myServer.server_close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...