如何解析与来自多部分 HTML 表单的其他数据一起发送的文件?

How do I parse a file sent with other data from a multipart HTML form?

我的服务器是 uWSGI 和 Python。我从网页上上传的文件中给自己发送了一张图片。如何在服务器上解析该文件? 我能够处理 CSV,因为它只是文本,我自己发送了它,但我不知道如何处理图像,或者我是否发送带有其他数据的文本文件。我将添加示例 POST 数据以说明我何时回到计算机前。 我的部分问题是之前的开发人员在解析 POST 数据时做了一些奇怪的事情,所以我不能让 uWSGI 把它变成可用数据,我必须自己在 Python.

我假设您是通过在 environ['wigs.imput'] 上读取来处理 url 编码数据,类似这样。

try:
    request_body_size = int(environ.get('CONTENT_LENGTH', 0))
except (ValueError):
    request_body_size = 0
request_body = environ['wsgi.input'].read(request_body_size)
dP = parse_qs(request_body)

对于 multipart/form-data 数据,您需要使用 cgi.FieldStorage

d = cgi.FieldStorage(environ=environ, fp=environ['wsgi.input'], keep_blank_values=True)

对于表单中的正常值,您可以执行

firstName = d.getvalue("firstName")

文件可以通过

获取
file_data = d['imageFile'].file.read()
filename = d['imageFile'].filename