最近刚学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小时内与您取得联系。