2010-07-13 8 views
3

J'envoie quelques fichiers d'un formulaire HTML à mon serveur basé sur BaseHTTPServer.Analyse des données POST HTML de Python à partir de BaseHTTPServer

Dans mon do_POST je reçois une chaîne de rfile.read (length) qui ressemble à une sorte de chaîne MIME multipart. Google n'est pas utile sur la façon dont je peux décoder cela en quelque chose d'utilisable.

La sortie ressemble à ceci:

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

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



1000000 

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

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

et ainsi de suite.

J'ai essayé email.parser

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

mais msg ne semble pas me faire tout plus près de mon but - ce n'est pas multipart et ne contient pas de charge utile.

Je suis réduit à analyser les données moi-même - ce qui n'est sûrement pas la façon de faire les choses de Python!

Ai-je manqué quelque chose d'évident? Est-ce que Google m'a laissé tomber? Stack Overflow peut-il sauver la journée?

Répondre

5

Est-ce que cgi.parse_multipart répondrait à vos besoins? Voir également une discussion pertinente sur comp.lang.python.

+0

Yup - cgi.parse_multipart était la réponse, et votre lien vers comp.lang.python était très instructif. Merci pour ça. Des heures de temps économisées, pour quelque chose de mieux! – pictiPig