Django中实现文件下载功能
来源:互联网 发布:链轮设计参数计算软件 编辑:程序博客网 时间:2024/06/06 03:35
在Django中实现文件下载功能的方法有很多,我们可以根据项目的具体情况来选择适合自己应用场景的方法。
实现方法可以参考以下的几篇文章中的方法:
1. Django实现文件下载的几种方法: http://blog.csdn.net/martin_liang/article/details/43286539
2. Django大文件的下载:http://www.tuicool.com/articles/bUnMfu
3. Django实现下载文件功能:http://www.jianshu.com/p/2ce715671340
本文参考了上述文章中的方法,讲述了在Django中文件下载功能的具体实现步骤:
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 onclick="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 responsedef 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步后,就可以实现文件下载功能了。
0 0
- Django中实现文件下载功能
- django 实现文件下载功能
- Django实现下载文件功能
- Django中实现文件上传功能
- Django实现文件下载
- asp.net中实现文件下载功能
- asp.net中实现文件下载功能
- asp.net中实现文件下载功能
- WebView中实现文件下载功能
- asp.net中实现文件下载功能
- asp.net中实现文件下载功能
- asp.net中实现文件下载功能
- ASP.NET中实现文件下载功能
- asp.net中实现文件下载功能
- WebView中实现文件下载功能
- WebView中实现文件下载功能
- WebView中实现文件下载功能
- WebView中实现文件下载功能
- Python新手学习基础之数据类型——字符串类型
- Spring中的Aware
- 如何做好一个Sprint Demo
- [心得感想]16.7.14-21 DIARY
- 神级代码编辑软件(Sublime Text 3) v3.3114 汉化特别版
- Django中实现文件下载功能
- JavaScript踩坑小计——变量的作用域和类型声明
- java异常机制
- sysconf、pathconf和fpathconf函数
- poj 3254
- Java Iterator
- 利用jquery写无缝循环滑动的轮播图
- Html.ActionLink无法跳转
- ionic 中$ionicView.beforeEnter 事件的一个bug