javascript - RestAPI 无法下载从 Django API 发送到 sveltekit 客户端的文件 - 读取 PNG 图像文件的致命错误
问题描述
我有一个 Django Get APIView,它返回一个带有 png 图像数据的 FileResponse。当它在 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();
// });
}
感谢您的帮助和评论。
解决方案
推荐阅读
- restsharp - RestSharp 将 Client Secret 发布到 Api
- c# - 是否有适用于 Windows 10 的 SendKeys 类的替代方案
- php - 如果数据存储为内爆,我们如何使用 where 条件
- php - Google Adword API:如何使用 CURL/SOAP 获取给定帐户的总支出金额
- c - 忽略c中命令行中的'<'和'>'
- apache-spark - Spark UI 中的“红色”执行器是什么意思?
- php - 上传到数据库时检查重复
- javascript - 当值由javascript设置时,隐藏小数位最多2位,如excel不会在php中删除
- javascript - 在 react-native 中,电子邮件深度链接(如共享)不适用于 android
- android - ApiException 检查 FusedLocationApi 中的位置设置