Python+django实现文件下载


Posted in Python onJanuary 17, 2016

(1)方法一、直接用a标签的href+数据库中文件地址,即可下载。缺点:word excel是直接弹框下载,对于image txt 等文件的下载方式是直接在新页面打开。

(2)方法二、在python后台对下载内容进项处理,返回内容直接弹出下载框。

#后台处理函数
def downloadFile(req):
  filename=basePath+req.GET['url']
  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
  response = StreamingHttpResponse(file_iterator(filename))
  response['Content-Type'] = 'application/octet-stream'
  response['Content-Disposition'] = 'attachment;filename="{0}"'.format(filename)
  return response

(3)前台使用函数方法

①、a标签调用函数传入路径<a href='/downloadFile/url=路径'>

②、button标签调用jq方法调用后台函数

<input type='button' class='download'>
#下载按钮点击事件
 $("body").on("click",".download",function(){3   location.href="/downloadFile/?url="+路径;
 });
Python 相关文章推荐
python 简易计算器程序,代码就几行
Aug 29 Python
python实现异步回调机制代码分享
Jan 10 Python
理解Python中的With语句
Feb 02 Python
详解Python中的装饰器、闭包和functools的教程
Apr 02 Python
Python文件处理
Feb 29 Python
Python+Selenium自动化实现分页(pagination)处理
Mar 31 Python
Python利用matplotlib做图中图及次坐标轴的实例
Jul 08 Python
Django 开发环境与生产环境的区分详解
Jul 26 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
Jan 06 Python
Python实时监控网站浏览记录实现过程详解
Jul 14 Python
Python logging日志库空间不足问题解决
Sep 14 Python
基于Python组装jmx并调用JMeter实现压力测试
Nov 03 Python
Python+django实现文件上传
Jan 17 #Python
初步剖析C语言编程中的结构体
Jan 16 #Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
Jan 16 #Python
python实现发送和获取手机短信验证码
Jan 15 #Python
详解python单例模式与metaclass
Jan 15 #Python
理解python正则表达式
Jan 15 #Python
Python工程师面试题 与Python Web相关
Jan 14 #Python
You might like
php检索或者复制远程文件的方法
2015/03/13 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
这段js代码得节约你多少时间
2011/12/20 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
jQuery实现动态添加tr到table的方法
2016/12/26 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
HTML5自定义mp3播放器源码
2020/01/06 HTML / CSS
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
传媒专业推荐信范文
2013/11/23 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
2015年教研组工作总结
2015/05/04 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python