Я пытаюсь получить содержимое файла в форме с сокетами, но когда я печатаю тело запроса, я просто получаю имя ввода и имя файла. Как сервер обрабатывает получение содержимого файла?
import socket
serversock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serversock.bind((socket.gethostname(), 5000))
serversock.listen(1)
while True:
clientsock, addr = serversock.accept()
data = clientsock.recv(4096*100).decode('utf-8')
headers = "HTTP/1.0 200 \n\r Content-Type: text/html\n\r\n\r"
if 'GET' in data:
body = open("form.html", "r").read()
elif 'POST' in data:
body = data
message = headers + body
clientsock.send(message.encode('utf-8'))
clientsock.close()
<form action="/" method="POST">
<input name='imagefile' type="file">
<input type="submit">
</form>
POST / HTTP/1.1
Host: 127.0.0.1:5000
Connection: keep-alive
Content-Length: 16
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://127.0.0.1:5000
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://127.0.0.1:5000/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
imagefile=2.jpeg