我有一个blob
。这是我使用<canvas>
调整大小的图像。我已通过将其转换为网址来验证数据是否正确,以根据the MDN guide进行测试。到现在为止还挺好。现在,我想将它发布到我的Django服务器(以及其他一些输入)。如何使用Django发布和检索blob
所以我这样做:
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);
我检查与网络检查控制台中的POST消息。我的blob被确认为与POST请求一起发送,我可以看到二进制数据作为“image0”字段发送。
-----------------------------1773139883502878911993383390
Content-Disposition: form-data; name="image0"; filename="blob"
Content-Type: image/png
所以我处理这个观点POST请求,在URL /ajax-upload/
访问:
def ajax_upload(request):
if request.method == 'POST':
print(request.POST.urlencode())
这给了我什么。一旦我发现我的blob去了哪里,我怎么能把它变成Image
?像img = Image.open(request.POST["image0"])
?
什么是request.FILES回来了? – Jerzyk
request.FILES显示为空:'' –
Escher