Je ne comprends pas, je ne comprends pas.mod_wsgi: Lire le contenu du fichier POSTed reste vide
Dans un framework web Python développé en interne, je poste un élément de formulaire de fichier sur le serveur en utilisant JavaScript.
var formData = new FormData();
formData.append('file', document.getElementById('file').files[0]);
var request = new XMLHttpRequest();
request.open("POST", url, true);
request.send(formData);
Le serveur, mod_wsgi sportif, reçoit la demande comme ceci:
if environ['REQUEST_METHOD'] == 'POST':
post_env = environ.copy()
post_env['QUERY_STRING'] = ''
form = cgi.FieldStorage(
fp=environ['wsgi.input'],
environ=post_env,
keep_blank_values=True)
Puis, quand je veux accéder au contenu du champ de formulaire pour l'enregistrer dans un fichier, ce qui suit renvoie un vide résultat:
form['file'].file.read()
(Tout le code a été modifié pour simplifier)
Qu'est-ce que Je me demande si le champ de formulaire indiquera le bon nom de fichier et le type MIME, seul file.read()
reste vide.
Toutes les autres informations des autres champs de texte de saisie sont également accessibles et accessibles. J'ai également vérifié que environ['REQUEST_METHOD']
est actuellement POST
.
Quant à en-têtes HTTP pour l'encodage (tels que multipart/form-data
), je pensais que l'objet XMLHttpRequest
prendra soin de cela, une fois formData.append()
reçoit une entrée de fichier en tant que valeur.