Ho un blob
. È un'immagine che ho ridimensionato usando uno <canvas>
. Ho verificato che i dati siano corretti convertendoli in un URL per testarlo come da the MDN guide. Fin qui tutto bene. Ora vorrei pubblicarlo sul mio server Django (insieme ad altri input).Come pubblicare e recuperare blob con Django
così faccio questo:
var fd = new FormData(form);
canvas.toBlob(function(blob) {
fd.set("image0", blob, "image0.jpg");
}, "image/jpeg", 0.7);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/ajax-upload/', true);
xhr.setRequestHeader("X-CSRFToken", csrftoken);
xhr.send(fd);
ho ispezionare il messaggio POST con la console di rete ispettore. Il mio blob viene confermato come inviato con la richiesta POST e posso vedere i dati binari inviati come campo "image0".
-----------------------------1773139883502878911993383390
Content-Disposition: form-data; name="image0"; filename="blob"
Content-Type: image/png
Così ho gestire la richiesta POST con questa visione, accessibile tramite l'URL /ajax-upload/
:
def ajax_upload(request):
if request.method == 'POST':
print(request.POST.urlencode())
Questo mi dà niente. Una volta che ho scoperto dove è andato il mio blob, come posso trasformarlo in un Image
? Qualcosa come img = Image.open(request.POST["image0"])
?
ciò che viene restituito in request.FILES? – Jerzyk
request.FILES sembra vuoto: '' –
Escher