我使用散列作为文件名存储了很多文件,但是当用户想要下载它时,我希望能够为该文件命名。
我们假设用户导航到www.myurl.com/userxy/files/some.pdf
。在该网址的Django视图中,我现在可以查找对应文件,该文件可能位于.../files/46dfa12bbf32d523fbb3642dfee45bb4
上的服务器上。
那么我现在如何才能将此文件作为some.pdf
提供给客户端?我是否必须首先复制文件,并在光盘上给它一个不同的名称,或者我可以以某种方式提供原始文件?是我在所有良好实践中尝试的吗?
我也不知道在什么级别(Apache或Django)最好处理这种类型的操作。但由于我没有为Apache或Django找到任何相关内容,我会对其中任何一个的解决方案感兴趣。
答案 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"'