【问题标题】:How to download an image from Django如何从 Django 下载图像
【发布时间】:2017-05-03 09:27:35
【问题描述】:

我构建了一个 django 应用程序,它生成一个图像并将其放置在服务器上的一个文件夹中。我想下载位于服务器上example.com/generatedimages 的那个图像。如何将此图像发送给客户?它与静态文件有什么关系?我是否需要临时为该图像生成一个 URL?我不使用 Django 模板。

技术资料:

  • Django 1.10
  • Django Rest 框架
  • 字体端的 ReactJs
  • 用于 API 调用的 jQuery
  • 图像类型:.png.svg

提前致谢。

【问题讨论】:

    标签: django django-rest-framework django-staticfiles


    【解决方案1】:

    如果文件放在settings.MEDIA_ROOT,那么它是公开的,您可以使用settings.MEDIA_URL 创建链接。

    如果文件在settings.MEDIA_ROOT之外,你可以使用内置视图django.views.static.serve

    如果您需要一些保护,只需使用标准视图但返回FileResponse

    通过 Django 提供大文件效率不高。如果您需要大文件,请查看django-sendfile

    【讨论】:

    • FileResponse 似乎没有触发浏览器中的下载。我怎样才能做到这一点?
    • 您不能在服务器端触发下载,只能在浏览器中触发(通过单击链接)。浏览器打开一个 URL,您在该 URL 上映射一个 Django 视图,该视图将 FileResponse 与该文件一起返回。然后浏览器打开下载对话框。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 2019-12-24
    • 2017-05-20
    • 2016-09-06
    • 2014-09-07
    • 1970-01-01
    相关资源
    最近更新 更多