最近刚学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
相关文章:
免费视频制作网站,更新又快又好的免费电影网站?
如何有效防御Web建站篡改攻击?
如何通过商城免费建站系统源码自定义网站主题?
代购小票制作网站有哪些,购物小票的简要说明?
如何通过免费商城建站系统源码自定义网站主题与功能?
如何用好域名打造高点击率的自主建站?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
金*站制作公司有哪些,金华教育集团官网?
测试制作网站有哪些,测试性取向的权威测试或者网站?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
微信小程序 input输入框控件详解及实例(多种示例)
创业网站制作流程,创业网站可靠吗?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何在阿里云服务器自主搭建网站?
如何快速搭建响应式可视化网站?
建站之星24小时客服电话如何获取?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
如何在云服务器上快速搭建个人网站?
如何选择可靠的免备案建站服务器?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
宝塔面板如何快速创建新站点?
linux top下的 minerd 木马清除方法
如何在阿里云虚拟主机上快速搭建个人网站?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
建站之星安装模板失败:服务器环境不兼容?
图册素材网站设计制作软件,图册的导出方式有几种?
,交易猫的商品怎么发布到网站上去?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
建站主机选购指南:核心配置与性价比推荐解析
如何快速搭建安全的FTP站点?
建站之星ASP如何实现CMS高效搭建与安全管理?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
如何在万网开始建站?分步指南解析
建站之家VIP精选网站模板与SEO优化教程整合指南
如何在IIS管理器中快速创建并配置网站?
定制建站如何定义?其核心优势是什么?
网站制作企业,网站的banner和导航栏是指什么?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
如何撰写建站申请书?关键要点有哪些?
SQL查询语句优化的实用方法总结
如何用PHP工具快速搭建高效网站?
广德云建站网站建设方案与建站流程优化指南
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
青岛网站建设如何选择本地服务器?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
高端网站建设与定制开发一站式解决方案 中企动力
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
做企业网站制作流程,企业网站制作基本流程有哪些?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
*请认真填写需求信息,我们会在24小时内与您取得联系。