2017-05-03 64 views
0

我構建了一個django應用程序,該應用程序生成一個圖像並將其放置在服務器上的一個文件夾中。我想要下載該映像,位於服務器example.com/generatedimages。我如何將此圖像發送給客戶?它與靜態文件有什麼關係?我是否需要暫時爲該圖片生成一個網址?我不使用Django模板。如何從Django下載圖像

技術信息:

  • Django的1.10
  • Django的REST框架
  • ReactJs在字體端
  • 的jQuery的API調用
  • 圖像類型:.png.svg

Th預先安排。

回答

1

如果該文件被放置在settings.MEDIA_ROOT那麼它是公開可用的,你可以使用settings.MEDIA_URL創建一個鏈接。

如果該文件不在settings.MEDIA_ROOT之內,則可以使用內置視圖django.views.static.serve

如果您需要一些保護,請使用標準視圖,但返回FileResponse

通過Django提供大文件效率不高。如果您需要大文件,請檢查django-sendfile

+0

FileResponse在瀏覽器中似乎沒有觸發下載。我怎樣才能做到這一點? – user2092743

+0

您不能在服務器端觸發下載,僅在瀏覽器中(通過單擊鏈接)。瀏覽器會打開一個URL,然後在該URL上映射一個Django視圖,並且該視圖會返回該文件的FileResponse。然後瀏覽器打開下載對話框 – Bruce