【发布时间】:2014-07-06 09:05:04
【问题描述】:
我做了这样的 TCP 服务器
serverPort = 8181
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.bind(('', serverPort))
serverSocket.listen(5)
我可以像这样接收用户的登录数据
elif path == '/login':
header, query = message.split(b'\r\n\r\n')
fp = io.BytesIO(query)
form = cgi.FieldStorage(fp, environ={'REQUEST_METHOD':'POST'})
connectionSocket.send(b'HTTP/1.1 200 OK\r\n')
connectionSocket.send(b'Content-type: text/html\r\n\r\n')
connectionSocket.send('<p>Hello {}!</p>'.format(form.getvalue('id')).encode('utf-8'))
但我无法接收分段上传数据!!T^T
我为上传文件编写了 HTML
<HTML>
<BODY>
<FORM ENCTYPE="multipart/form-data" ACTION="http://127.0.0.1:8181/upload" METHOD=POST>
File to process: <INPUT NAME="file" TYPE="file">
<INPUT TYPE="submit" VALUE="Send File">
</FORM>
</BODY>
</HTML>
如何接收文件并保存?
我知道使用 HTTP 服务器是解决这个问题的好方法
但我应该使用这样的 TCP 服务器...
请帮助我!我无法解决这个问题...T^T
【问题讨论】:
-
读取文档到 cgi.FieldStorage
-
既然有Flask或Pyramid,为什么要经历这么多痛苦,这是我想知道的。
标签: python upload cgi multipart