python实现上传下载文件功能


Posted in Python onNovember 19, 2020

最近刚学python,遇到上传下载文件功能需求,记录下!

django web项目,前端上传控件用的是uploadify。

文件上传 - 后台view 的 Python代码如下:

@csrf_exempt
@require_http_methods(["POST"])
def uploadFiles(request):
 try:
 user = request.session.get('user')
 allFimeNames = ""
 #获取所有上传文件
 files = request.FILES.getlist("file")
 for file in files:
  # 获取文件名 解析文件后缀 获取新文件名
  oldName = file.name
  filename = str(int(time.time() * 10))+"."+oldName.split(".")[1]
  now = datetime.now()
  filePath = os.path.join("developmentTask",str(user.get("userId"))+"-"+now.strftime('%Y-%m-%d'))
  dirpath = os.path.join(settings.UPLOADFILES_DIRS , filePath)
  #写入服务器
  if not os.path.exists(dirpath):
  os.makedirs(dirpath)
  newFilePath = os.path.join(dirpath, filename)
  with open(newFilePath, 'wb+') as destination:
  for chunk in file.chunks():
   destination.write(chunk)
  #返回新文件名 多个用逗号隔开
  allFimeNames = os.path.join(filePath,filename)
 except Exception:
 return JsonResponse(data={'error': "系统异常"}, status=400)
 return JsonResponse(data={'filePath': allFimeNames})

request.FILES.getlist("file")此处的file 是前端页面的文件提交的名称,可以在uploadify中配置。

文件下载:

@csrf_exempt
@require_http_methods(["GET"])
def downloadFile(request):
 filePath = request.GET.get("filepath")
 fileName = request.GET.get("filename")
 file_name = os.path.join(settings.UPLOADFILES_DIRS, filePath)
 if os.path.exists(file_name):
 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(file_name))
 response['Content-Type'] = 'application/octet-stream'
 response['Content-Disposition'] = 'attachment;filename="{0}"'.format(fileName)
 return response
 response = StreamingHttpResponse("文件不存在!")
 response['Content-Type'] = 'application/octet-stream'
 response['Content-Disposition'] = 'attachment;filename="{0}"'.format("")
 return response

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

Python 相关文章推荐
在Python中用has_key()方法查找键是否存在的教程
May 21 Python
Django视图和URL配置详解
Jan 31 Python
Python针对给定列表中元素进行翻转操作的方法分析
Apr 27 Python
对python:print打印时加u的含义详解
Dec 15 Python
python flask安装和命令详解
Apr 02 Python
我就是这样学习Python中的列表
Jun 02 Python
python求最大值,不使用内置函数的实现方法
Jul 09 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
Aug 23 Python
Django之使用内置函数和celery发邮件的方法示例
Sep 16 Python
Python 必须了解的5种高级特征
Sep 10 Python
Python中的datetime包与time包包和模块详情
Feb 28 Python
python读取并查看npz/npy文件数据以及数据显示方法
Apr 14 Python
分享几道你可能遇到的python面试题
Jul 24 #Python
python 判断是否为正小数和正整数的实例
Jul 23 #Python
python WindowsError的错误代码详解
Jul 23 #Python
python实现发送邮件功能
Jul 22 #Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 #Python
Python原始字符串与Unicode字符串操作符用法实例分析
Jul 22 #Python
安装Python的教程-Windows
Jul 22 #Python
You might like
PHP的开发框架的现状和展望
2007/03/16 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
一个tab标签切换效果代码
2009/03/27 Javascript
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
bootstrap中的 form表单属性role="form"的作用详解
2017/01/20 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python易忽视知识点小结
2015/05/25 Python
独特的python循环语句
2016/11/20 Python
Python中查看文件名和文件路径
2017/03/31 Python
Python3.6简单操作Mysql数据库
2017/09/12 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
大学生个人总结的自我评价
2013/10/05 职场文书
服务承诺书范文
2014/05/19 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
超市收银员岗位职责
2015/04/07 职场文书
茶花女读书笔记
2015/06/29 职场文书
爱国之歌(8首)
2019/09/29 职场文书