django - 让用户下载文件+ django

标签 django file download

我的网络应用程序允许用户搜索目录中的文件,并返回与特定时间范围匹配的文件的链接。

用户可以单击任何链接并通过某个 URL 查看文件的内容。

我希望用户能够单击链接并将文件下载到他们的系统,而不是在单独的页面上显示文件内容。

这是我到目前为止所拥有的......

下载.html

<ul>
{% for file in match %}
    <a href =/media/{{ file }}>{{ file }}</a>
    <br></br>
{% endfor %}
</ul> 

我们从此 View 查看文件...

def xsendfile(request, path):  
    response = HttpResponse()
    response['Content-Type']=''
    response['X-Sendfile']= smart_str(os.path.join(settings.MEDIA_ROOT, path))
    return response

使用此网址..

url(r'^media\/(?P<path>.*)$', views.xsendfile),

我不知道如何解决这个问题或走哪条路

非常感谢任何指导! :)

这是我的代码更改:

def xsendfile(request, path):  
    response = HttpResponse()
    response['Content-Type']=''
    response['Content-Disposition'] = "attachment; filename="+path
    response['X-Sendfile']= smart_str(os.path.join(settings.MEDIA_ROOT, path))
    return response

最佳答案

您已经快完成了,但您需要设置 Content-disposition header 值,如下所示:

response['Content-Disposition'] = "attachment; filename='fname.ext'"

关于django - 让用户下载文件+ django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32704177/

相关文章:

java - Java 有什么方法可以获取当前文件名和当前行号?

java - servlet 下载 pdf 时,下载过程不可见

javascript - Cordova - 下载图像并将其 move 到另一个文件夹中

python - 如何将 URL 中的图像下载到特定文件夹中

java - 如何替换对于字符串来说太大的文件中的文本

python - 访问远程相关 Django 模型的最佳实践

django - 如何在 Django 的同一个模板中使用两个 ckeditor?

python - 将 StreamingHttpResponse 与 Django Rest Framework CSV 一起使用

java - 更新文本文件定界符java

javascript - Django 数据到 Google Charts