【问题标题】:Django and/or Apache: serve (static) files with a different nameDjango 和/或 Apache:提供不同名称的(静态)文件
【发布时间】:2014-04-07 08:41:05
【问题描述】:

我存储了很多文件,使用哈希作为文件名,但是当用户想要下载它时,我希望能够给文件一个新名称。

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

那么我现在怎样才能让这个文件作为some.pdf 提供给客户呢?我必须先复制文件,然后在光盘上给它一个不同的名称,还是我可以以某种方式提供原始文件?我正在尝试的所有做法都是好的做法吗?

我也不知道这种操作在哪个级别(Apache 或 Django)上最好处理。但由于我没有为 Apache 或 Django 找到任何相关信息,因此我会对它们中的任何一个的解决方案感兴趣。

【问题讨论】:

    标签: django apache static-files


    【解决方案1】:

    引用 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"'
    

    【讨论】:

    • 太棒了,这很好用。正是我需要的。对于尝试这个并问自己的每个人,如何让文件显示在浏览器中而不是下载它:显然你可以使用inline 而不是attachment。至少这对我有用。
    猜你喜欢
    • 1970-01-01
    • 2014-11-24
    • 2014-10-17
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2014-10-08
    • 2017-09-02
    相关资源
    最近更新 更多