#javascript #django #django-rest-framework #svelte
Вопрос:
У меня есть Django Get APIView, который возвращает файловый ответ с данными изображения png. Когда он загружается на стороне клиента sveltekit, его не читают. Он жалуется, что это не файл png. Не знаю, в чем дело. Вот код сервера:
from django.http import FileResponse, HttpResponse
import mimetypes
# from django.core.files import File
mime_type, _ = mimetypes.guess_type('qrcode.png')
response = HttpResponse(open('qrcode.png', 'rb'), content_type=mime_type)
# response = FileResponse(open('qrcode.png', 'rb'), content_type=mime_type)
# response = HttpResponse(open('qrcode.png', 'rb'))
# response = HttpResponse(open('qrcode.png', 'rb'), content_type='application/png')
# response = HttpResponse(FileWrapper(img), content_type='application/png')
response['Content-Disposition'] = 'attachment; filename=qrcode.png'
return response
Я прокомментировал все возможности, которые я пробовал.
Теперь вот код на стороне клиента:
if (res.status == 200){
qrimage = await res.data;
console.log(typeof(qrimage));
// const blob = new Blob(qrimage);
// let url = window.URL.createObjectURL(blob);
// let url = window.URL.createObjectURL(qrimage);
let a = document.createElement("a");
// console.log(url);
a.href = 'data:image/png;' qrimage;
a.target = '_blank';
a.download = 'qrcode.png';
a.click();
// });
}
Спасибо вам за помощь и комментарии.