Django和/或Apache:使用不同的名称提供(静态)文件

时间:2014-04-07 08:41:06

标签: django apache static-files

我使用散列作为文件名存储了很多文件,但是当用户想要下载它时,我希望能够为该文件命名。

我们假设用户导航到www.myurl.com/userxy/files/some.pdf。在该网址的Django视图中,我现在可以查找对应文件,该文件可能位于.../files/46dfa12bbf32d523fbb3642dfee45bb4上的服务器上。

那么我现在如何才能将此文件作为some.pdf提供给客户端?我是否必须首先复制文件,并在光盘上给它一个不同的名称,或者我可以以某种方式提供原始文件?是我在所有良好实践中尝试的吗?

我也不知道在什么级别(Apache或Django)最好处理这种类型的操作。但由于我没有为Apache或Django找到任何相关内容,我会对其中任何一个的解决方案感兴趣。

1 个答案:

答案 0 :(得分:2)

引用django docs Telling the browser to treat the response as a file attachmen,您应该在回复时通知它:

>>> response = HttpResponse(my_data, content_type='application/vnd.ms-excel')
>>> response['Content-Disposition'] = 'attachment; filename="some.pdf"'