全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

python实现上传下载文件功能

最近刚学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上传文件  # python下载文件  # Python select及selectors模块概念用法详解  # Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作  # 完美解决python针对hdfs上传和下载的问题  # Python selenium文件上传下载功能代码实例  # 基于python实现FTP文件上传与下载操作(ftp&sftp协议)  # Python Socketserver实现FTP文件上传下载代码实例  # python3 requests库文件上传与下载实现详解  # 使用Python操作FTP实现上传和下载的方法  # python ftp 按目录结构上传下载的实现代码  # python实现的简单FTP上传下载文件实例  # python 基于selectors库实现文件上传与下载  # 的是  # 多个  # 不存在  # 大家多多  # 上传文件  # 文件上传  # 上传  # userId  # oldName  # filename  # str  # file  # files  # split  # getlist 


相关文章: 网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  如何用PHP快速搭建高效网站?分步指南  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  已有域名能否直接搭建网站?  完全自定义免费建站平台:主题模板在线生成一站式服务  如何基于云服务器快速搭建个人网站?  如何制作一个表白网站视频,关于勇敢表白的小标题?  已有域名如何免费搭建网站?  建站主机功能解析:服务器选择与快速搭建指南  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  Python文件管理规范_工程实践说明【指导】  ,南京靠谱的征婚网站?  如何生成腾讯云建站专用兑换码?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  C#怎么创建控制台应用 C# Console App项目创建方法  详解jQuery停止动画——stop()方法的使用  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  开封网站制作公司,网络用语开封是什么意思?  如何在搬瓦工VPS快速搭建网站?  如何在IIS管理器中快速创建并配置网站?  广州商城建站系统开发成本与周期如何控制?  如何快速搭建自助建站会员专属系统?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何在西部数码注册域名并快速搭建网站?  建站之星与建站宝盒如何选择最佳方案?  如何在阿里云通过域名搭建网站?  网站企业制作流程,用什么语言做企业网站比较好?  再谈Python中的字符串与字符编码(推荐)  网站制作说明怎么写,简述网页设计的流程并说明原因?  如何通过山东自助建站平台快速注册域名?  建站10G流量真的够用吗?如何应对访问高峰?  建站主机与虚拟主机有何区别?如何选择最优方案?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何选择高性价比服务器搭建个人网站?  如何快速建站并高效导出源代码?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  威客平台建站流程解析:高效搭建教程与设计优化方案  如何用VPS主机快速搭建个人网站?  南平网站制作公司,2025年南平市事业单位报名时间?  如何用好域名打造高点击率的自主建站?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  广平建站公司哪家专业可靠?如何选择?  如何通过VPS搭建网站快速盈利?  如何在云虚拟主机上快速搭建个人网站?  宁波自助建站系统如何快速打造专业企业网站?  微信推文制作网站有哪些,怎么做微信推文,急?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  C++时间戳转换成日期时间的步骤和示例代码  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。