J'ai lu dans un fichier via HTML5 FileReader et jQuery comme ceci:post binaire Sting à l'application Django en utilisant HTML 5
holder.ondrop = function(e) {
this.className = '';
e.preventDefault();
var file = e.dataTransfer.files[0],
reader = new FileReader();
reader.onloadend = function(event) {
$.ajax({
url:"/path/to/upload",
type: "POST",
data: event.target.result,
success: function(data, status, xhr) {
alert("success!");
},
error: function(xhr, status, error) {
alert("fail")
},
});
};
reader.readAsBinaryString(file);
return false;
};
Le « ondrop » est utilisé pour gérer le glisser-déposer sur un élément que j'ai nommé "titulaire".
Le fichier est soumis à mon application django, et si je simplement
print request.raw_post_data
Je vois sortie binaire dans ma console.
J'essaie d'écrire à un fichier comme si (oui dans mon test, il est toujours un jpg):
f = open('/tmp/file.jpg', 'wb')
f.write(request.raw_post_data)
f.close()
Et le fichier est écrit, mais lorsque je tente de l'ouvrir, il semble corrompu.
Mon soupçon est que cela a quelque chose à voir avec request.raw_post_data mal codé mais je ne suis pas sûr de la façon de le corriger ... raw_post_data ressemble à binaire bien que type() retourne str.
Des pensées?