我有一个blob
。这是我使用调整大小的图像<canvas>
。我已经通过将数据转换为 url 来测试它来验证数据是否正确MDN 指南 https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob。到目前为止,一切都很好。现在,我想将其发布到我的 Django 服务器(以及一些其他输入)。
所以我这样做:
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())
这给我什么也没有。一旦我发现我的斑点去了哪里,我怎样才能把它变成一个Image
?就像是img = Image.open(request.POST["image0"])
?