Я пытаюсь настроить простой HTTPServer в Python3 для загрузки файлов, и я застрял в кодировках (наверное).Вот код сервера:
class RequestHandler(http.server.BaseHTTPRequestHandler):
def do_POST(self):
img_bytes = self.rfile.read(int(self.headers.get('Content-Length')))
# I DON'T KNOW WHAT TO DO HERE
self.send_response_only(200)
self.end_headers()
PORT = 8000
with socketserver.TCPServer(("", PORT), RequestHandler) as httpd:
httpd.serve_forever()
Запрос на стороне клиента:
requests.post("http://server_ip:port", files={"img": open("img.jpg", "rb")})
Или
curl -d "@img.jpg" -X POST server_ip:port
Дайте обоим одинаковый результат.
Я хочу сохранить изображение, полученное на сервере, но оно имеет тип "байты", и я попытался несколько .decode(...)
методов безуспешно.Что в этой переменной?Или вообще, каков правильный подход к нему?
ПРИМЕЧАНИЕ. Я сделал версию, в которой я encode()
передаю свои входные данные изображения, передаю их с помощью параметра data
и decode()
itна стороне сервера.Но, казалось бы, некрасиво, если для этого есть параметр files
.
Заранее благодарен за любую помощь или совет