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

时间:2016-08-09 12:52:16

标签: python-2.7 multipartform-data uwsgi

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

1 个答案:

答案 0 :(得分:1)

我假设您通过在environ['wigs.imput']上阅读来处理网址编码数据,就像这样。

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