从BaseHTTPServer解析Python HTML POST数据

3 投票
1 回答
5383 浏览
提问于 2025-04-16 01:13

我正在通过一个HTML表单把几个文件发送到我的服务器,这个服务器是基于BaseHTTPServer搭建的。

在我的do_POST方法里,我从rfile.read(length)中获取了一个字符串,这个字符串看起来像是一种多部分的MIME字符串。可是,谷歌对我如何解码这个字符串成可用的内容并没有提供太多帮助。

输出的内容大致是这样的:

-----------------------------122422713313797828591978698502

Content-Disposition: form-data; name="MAX_FILE_SIZE"



1000000

-----------------------------122422713313797828591978698502

Content-Disposition: form-data; name="and_title_input"

还有其他类似的内容。

我尝试过使用email.parser

from email.parser import Parser 
p=Parser()
msg=p.parsestr(s)

但是msg似乎并没有让我更接近我的目标——它不是多部分的,也没有包含有效载荷。

我现在只能自己解析这些数据了——这肯定不是Python推荐的做法!

我是不是漏掉了什么明显的东西?谷歌真的帮不了我吗?Stack Overflow能帮我解决这个问题吗?

1 个回答

6

你觉得 cgi.parse_multipart 能满足你的需求吗?另外,你也可以看看在 comp.lang.python 上的相关讨论。

撰写回答