django+python 实现下载文件

转自:出处1出处2

1. 新建一个文件下载的模板(本文是基于bootstrap的模板):

<div class="row">
      <div class="col-md-8 col-md-offset-2">
          <br>
          <P>第一种方法,直接把链接地址指向要下载的静态文件,在页面中点击该链接,可以直接打开该文件,在链接上点击右键,选择“另存为”可以保存该文件到本地硬盘。
             此方法只能实现静态文件的下载,不能实现动态文件的下载。</P>
          <a href="{% url 'media' 'uploads/11.png' %}">11.png</a>
          <br>
          <br>
          <p>第二种方法,将链接指向相应的view函数,在view函数中实现下载功能,可以实现静态和动态文件的下载。</p>
          <a href="{% url 'course:download_file' %}">11.png</a>
          <br>
          <br>
          <br>
          <p>第三种方法,与第二种方法类似,利用按钮的响应函数实现文件下载功能。</p>
          <label> 11.png</label><button οnclick="window.location.href='{% url 'course:download_file' %}'">Download</button>
      </div>
  </div
2. 编写相应的view函数:

def download_file(request):
    # do something

    the_file_name='11.png'             #显示在弹出对话框中的默认的下载文件名    
    filename='media/uploads/11.png'    #要下载的文件路径
    response=StreamingHttpResponse(readFile(filename))
    response['Content-Type']='application/octet-stream'
    response['Content-Disposition']='attachment;filename="{0}"'.format(the_file_name)
    return response

def readFile(filename,chunk_size=512):
    with open(filename,'rb') as f:
        while True:
            c=f.read(chunk_size)
            if c:
                yield c
            else:
                break

3. 配置相应的页面访问url:

<input type='button' class='download'>

$("body").on("click",".download",function(){  location.href="/downloadFile/?url="+路径;

});


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值