2012-02-27 52 views
9

我在我的Django模型的FileField:如何下載在Django視圖中的FileField文件

file=models.FileField(verbose_name=u'附件',upload_to='attachment/%Y/%m/%d',max_length=480) 

該文件將在鏈接的網頁顯示「http://test.com.cn/home/項目/ 89 /附件/ 2012/02/24/sscsx.txt「

我想要做的是當用戶點擊文件鏈接時,它會自動下載文件; 任何人都可以告訴我如何在視圖中做到這一點?

在此先感謝!

回答

17

你可以試試下面的代碼,假設object_name是模型的對象:

filename = object_name.file.name.split('/')[-1] 
response = HttpResponse(object_name.file, content_type='text/plain') 
response['Content-Disposition'] = 'attachment; filename=%s' % filename 

return response 

參見直接發送文件Django文檔的以下部分:https://docs.djangoproject.com/en/dev/ref/request-response/#telling-the-browser-to-treat-the-response-as-a-file-attachment

+0

謝謝,它的工作原理 – Angelia 2012-02-28 03:15:40

+0

你是如何得到object_name的視圖?你使用了什麼URL參數? – yretuta 2012-10-23 07:23:16

+0

object_name不重要,因爲它只是表示一個Django Model對象。您可以以任何喜歡的方式檢索對象。 – 2012-10-23 16:28:05

相關問題