Django实现文件上传和下载功能


Posted in Python onOctober 06, 2019

本文实例为大家分享了Django下完成文件上传和下载功能的具体代码,供大家参考,具体内容如下

一、文件上传

Views.py

def upload(request):
 if request.method == "POST": # 请求方法为POST时,进行处理
 myFile = request.FILES.get("myfile", None) # 获取上传的文件,如果没有文件,则默认为None
 if not myFile:
 return HttpResponse("no files for upload!")
 # destination=open(os.path.join('upload',myFile.name),'wb+')
 destination = open(
 os.path.join("你的文件存放地址", myFile.name),
 'wb+') # 打开特定的文件进行二进制的写操作
 for chunk in myFile.chunks(): # 分块写入文件
 destination.write(chunk)
 destination.close()
 return HttpResponse("upload over!")
 else:
 file_list = []
 files = os.listdir('D:\python\Salary management system\django\managementsystem\\file')
 for i in files:
 file_list.append(i)
 return render(request, 'upload.html', {'file_list': file_list})

urls.py

url(r'download/$',views.download),

upload.html

<div class="container-fluid">
 <div class="row">
 <form enctype="multipart/form-data" action="/upload_file/" method="POST">
 <input type="file" name="myfile"/>
 <br/>
 <input type="submit" value="upload"/>
 </form>
 </div>
</div>

 页面显示

 Django实现文件上传和下载功能

二、文件下载

Views.py

from django.http import HttpResponse,StreamingHttpResponse
from django.conf import settings
 
def download(request):
 filename = request.GET.get('file')
 filepath = os.path.join(settings.MEDIA_ROOT, filename)
 fp = open(filepath, 'rb')
 response = StreamingHttpResponse(fp)
 # response = FileResponse(fp)
 response['Content-Type'] = 'application/octet-stream'
 response['Content-Disposition'] = 'attachment;filename="%s"' % filename
 return response
 fp.close()

HttpResponse会直接使用迭代器对象,将迭代器对象的内容存储城字符串,然后返回给客户端,同时释放内存。可以当文件变大看出这是一个非常耗费时间和内存的过程。

而StreamingHttpResponse是将文件内容进行流式传输,StreamingHttpResponse在官方文档的解释是:

The StreamingHttpResponse class is used to stream a response from Django to the browser. You might want to do this if generating the response takes too long or uses too much memory.

这是一种非常省时省内存的方法。但是因为StreamingHttpResponse的文件传输过程持续在整个response的过程中,所以这有可能会降低服务器的性能。

urls.py

url(r'^upload',views.upload),

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
教大家使用Python SqlAlchemy
Feb 12 Python
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 Python
python如何统计序列中元素
Jul 31 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
Python 中的range(),以及列表切片方法
Jul 02 Python
python对列进行平移变换的方法(shift)
Jan 10 Python
使用Python 统计高频字数的方法
Jan 31 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
基于Python实现简单学生管理系统
Jul 24 Python
python3爬虫中多线程进行解锁操作实例
Nov 25 Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 Python
Django文件上传与下载(FileFlid)
Oct 06 #Python
Django实现文件上传下载
Oct 06 #Python
python编写猜数字小游戏
Oct 06 #Python
python实现猜数字游戏
Mar 25 #Python
python实现机器人卡牌
Oct 06 #Python
Django实现文件上传下载功能
Oct 06 #Python
使用turtle绘制五角星、分形树
Oct 06 #Python
You might like
虚拟主机中对PHP的特殊设置
2006/10/09 PHP
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
2011/07/18 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
Smarty模板配置实例简析
2019/07/20 PHP
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
JS实现简单打字测试
2020/06/24 Javascript
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
竞选演讲稿范文
2013/12/28 职场文书
小学生防溺水广播稿
2014/01/12 职场文书
幼儿园秋游活动方案
2014/01/21 职场文书
采购助理岗位职责
2014/02/16 职场文书
幼儿园个人总结
2015/02/28 职场文书
信访工作个人总结
2015/03/03 职场文书
任命通知范文
2015/04/21 职场文书
导游词之沈阳清昭陵
2019/12/28 职场文书