我存储了很多文件,使用哈希作为文件名,但是当用户想要下载它时,我希望能够给文件一个新名称。
假设用户导航到www.myurl.com/userxy/files/some.pdf
。在该 url 的 Django 视图中,我现在可以查找相应的文件,该文件可能位于 .../files/46dfa12bbf32d523fbb3642dfee45bb4
上的服务器上。
那么,我现在如何才能将此文件作为客户端的some.pdf
呢?我是否必须先复制文件,并在光盘上为其指定不同的名称,或者我可以以某种方式提供原始文件?我正在尝试的是好的做法吗?
我也不知道在哪个级别(Apache或Django)最好地处理这种类型的操作。但是由于我没有找到有关Apache或Django的任何内容,因此我对它们中的任何一个的解决方案都感兴趣。
引用 django 文档 告诉浏览器将响应视为文件附件,您应该在响应中通知它:
>>> response = HttpResponse(my_data, content_type='application/vnd.ms-excel')
>>> response['Content-Disposition'] = 'attachment; filename="some.pdf"'