• Django文件下载(通过反向解析)


    Django文件下载(通过反向解析)

    首先配一个路由

    url(r'^download/(.*)', views.download,name='download_file'),
    

    在HTML中添加需要下载的文件标签

    <a href="{% url 'download_file'  file_name  %}">下载文件</a>  <!--file_name为要下载的文件名-->
    

    在视图层

    # 文件下载
    def download(request,data): # 通过反向解析获取data文件名
    		file_path = os.path.join(os.getcwd(), data) # 拼接文件在服务端的真实路径
        # 下载文件(固定格式)
        ext = os.path.basename(file_path).split('.')[-1].lower()
        # 不让客户下载的文件路径
        if ext not in ['py', 'db', 'sqlite3']:
            response = FileResponse(open(file_path, 'rb'))
            response['content_type'] = "application/octet-stream"
            response['Content-Disposition'] = 'attachment; filename=' + 'dow_name' # 下载的文件名
            return response  # 返回文件流
        else:
            raise Http404
    

    总结:

    下载文件中遇到的问题:刚开始准备使用post方式请求,post方式有两种,form表单和ajax方式,使用form表单会在每次下载完后刷新页面,不可选取,使用ajax方式,最后发现,ajax不能下载文件流,所以只能选用get方式下载文件。

  • 相关阅读:
    linux会话浅析
    linux memory lock浅析
    浅谈动态库符号的私有化与全局化
    LINUX内核内存屏障
    linux内存屏障浅析
    linux内核mem_cgroup浅析
    记一个linux内核内存提权问题
    linux内核cfs浅析
    linux内核tmpfs/shmem浅析
    linux IPv4报文处理浅析
  • 原文地址:https://www.cnblogs.com/tyler-bog/p/11001448.html
Copyright © 2020-2023  润新知