Django实现文件下载
发布日期:2021-06-21 03:01:19 浏览次数:6 分类:技术文章

本文共 808 字,大约阅读时间需要 2 分钟。

有些时候需要先检查用户权限再下载文件,这个时候就可以通过django来实现了

Django提供了StreamingHttpResponse对象用于将文件流发送给浏览器,与HttpResponse对象非常相似,对于文件下载功能,使用StreamingHttpResponse对象更合理。

先写一个迭代器,用于处理文件,然后将这个迭代器作为参数传递给StreaminghttpResponse对象

fromdjango.http import StreamingHttpResponse

 

deffile_download(request):

    def file_iterator(file_name, chunk_size=512):

        with open(file_name) as f:

            while True:

                c = f.read(chunk_size)

                if c:

                    yield c

                else:

                    break

 

    the_file_name = " filename.pdf"

    response =StreamingHttpResponse(file_iterator(the_file_name))

    response['Content-Type'] = 'application/octet-stream'

    response['Content-Disposition'] = 'attachment;filename="{0}"'.format(the_file_name) 

    return response

为了让文件下载到硬盘,添加了如下两句:

    response['Content-Type'] = 'application/octet-stream'

    response['Content-Disposition'] = 'attachment;filename="{0}"'.format(the_file_name) 

转载地址:https://blog.csdn.net/Kwoky/article/details/77568657 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:scikit learn安装
下一篇:python中os.path.dirname(__file__)的使用

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月12日 13时29分25秒