Django 下载的文件名

Posted

技术标签:

【中文标题】Django 下载的文件名【英文标题】:Django Downloaded File Name 【发布时间】:2013-12-10 10:44:22 【问题描述】:

我使用一个简单的视图类通过它的 pk 来“强制下载”一个文件。下载的文件名称是 pk。我希望它是原始文件名,就像它在服务器上一样。 我该怎么做?

*我是 django 新手

这里是视图的代码

class GetFileContent(View):
def get(self,request, userName, pk):
    user = User.objects.filter(username = userName)
    filtered = File.objects.filter(pk = pk, published=True, file_owner = user)
    data = filtered[0].content
    return HttpResponse(data, content_type='application/force-download')
    pass

【问题讨论】:

【参考方案1】:

您需要在响应中设置文件名:

response = HttpResponse(data, content_type='application/force-download')
response['Content-Disposition'] = 'attachment; filename=""'.format(filename)
return response

您需要找到一种方法来确定所需的文件名(例如,将其存储在数据库中以供查找)。

【讨论】:

以上是关于Django 下载的文件名的主要内容,如果未能解决你的问题,请参考以下文章

django 文件下载

使用 Django 提供文件以供下载

通过Django下载Zip文件,文件解压为cpzg

Django 如何下载现有文件?

在 django 中下载 csv 文件

django 中下载文件与下载保存为excel