提供.json文件以供下载

Ev。

我正在尝试通过此功能提供.json文件。问题在于,每次我发出请求时,浏览器都会显示内容,而不是下载文件。

我认为这可能是由于我将其.read()用作HttpResponse对象构造函数的参数。但是,如果仅使用文件对象,则会出现以下异常:

TypeError: cannot serialize '_io.BufferedRandom' object

代码

try:
    invoices = models.Invoice.objects.filter(pk__in=document_ids).order_by(*ordering)
    pcustomers = models.CustomerProxy.objects.all()
    mixed_query = list(invoices) + list(pcustomers)

    file = tempfile.NamedTemporaryFile(suffix='.json')
    file.write(serializers.serialize('json', mixed_query).encode())
    file.seek(0)

    response = HttpResponse(file.read(), content_type='application/json')
    response['Content-Disposition'] = 'attachment; filename=%s' % file.name
    response['Content-Length'] = os.path.getsize(file.name)

except Exception:
    raise

return response
拉夫

您无需完成整个文件生成过程即可创建可下载文件,只需正常添加Content-Disposition标头即可。下面的代码有效吗?

...
mixed_query = list(invoices) + list(pcustomers)
json_str = serializers.serialize('json', mixed_query))
response = HttpResponse(json_str, content_type='application/json')
response['Content-Disposition'] = 'attachment; filename=export.json'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

提供.json文件以供下载

来自分类Dev

在ASP.NET C#中提供XML文件以供下载,其中包含大量记录

来自分类Dev

如何使用金字塔FileResponse提供此视频文件以供下载

来自分类Dev

客户端在提供大文件以供下载时断开连接(Java、Jersey、HTTP、GET)

来自分类Dev

提供远程文件下载

来自分类Dev

提供CSV文件供下载

来自分类Dev

如何提供文件以从Rails下载?

来自分类Dev

Django:在mongodb中提供从GridFS下载的文件

来自分类Dev

硒下载时提供文件名

来自分类Dev

提供Inno Setup下载功能的文件大小

来自分类Dev

提供内容可变的文件下载。的PHP

来自分类Dev

SLIM API-提供要下载的文件

来自分类Dev

在哪里提供要由 IOS 下载的文件

来自分类Dev

如何通过spring @RestController提供压缩下载的文件?

来自分类Dev

如何在Django中提供可下载的zip文件

来自分类Dev

如何使用Wiki下载的索引文件中提供的信息?

来自分类Dev

了解后端文件种子以提供快速的客户端下载

来自分类Dev

如何配置nginx以提供HTML文件供查看而不是下载?

来自分类Dev

如何动态提供文件,然后使其在Django中可下载?

来自分类Dev

PHP Force下载-提供190byte文件

来自分类Dev

如何在Django中提供可下载的zip文件

来自分类Dev

如何提供Windows Azure网站上下载的.exe文件?

来自分类Dev

下载PHP脚本提供的文件时,网站无法使用

来自分类Dev

提供asc文件如何确保我下载了预期的源代码?

来自分类Dev

如何在django中提供要下载的文件?

来自分类Dev

文件上次修改时间与下载提供商相同

来自分类Dev

curl:使用hapijs为下载的文件提供动态名称

来自分类Dev

Apache从RAM提供文件

来自分类Dev

Django提供静态文件

Related 相关文章

热门标签

归档