python实现文件上传功能_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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
时间: 2017-07-22
python实现文件上传功能_python实现上传下载文件功能相关推荐
- python下载网页中的pdf文件_【Python】Python的urllib模块、urllib2模块批量进行网页下载文件...
由于需要从某个网页上下载一些PDF文件,但是需要下载的PDF文件有几百个,所以不可能用人工点击来下载.正好Python有相关的模块,所以写了个程序来进行PDF文件的下载,顺便熟悉了Python的url ...
- python编写代码实现文件的拷贝功能_python利用os模块编写文件复制功能——copy()函数用法...
我就废话不多说了,大家还是直接看代码吧~ #文件复制 import os src_path=r'E:\Pycharm\python100题\代码' target_path=r'E:\Pycharm\p ...
- 原python最简单的图形编程_Python(简单图形和文件处理)编程
Python确实是一门很简洁而且功能有强大的语言,我觉得开始学习很容易理解,说到熟练和精通还是不容易的,还需不断学习. 从最基础的语法学习,有些部分各种语言是相同的,让人很好理解.编程也是从最简单语法 ...
- 利用mysql实现上传和下载_将文件上传到数据库 和 从数据库下载文件到本地
有时候我们需要把图片.文档.dll文件.等等,上传的数据库,然后当需要的时候再从数据库中读取到本地,下面我以上传图片为例,讲解一下如何把本地的一张图片上传到数据库,然后再从数据库下载到本地. 工具:V ...
- python读取excel内容和写入_Python读取和写入Excel文件
制作Excel表 常用方法说明 Workbook类 Workbook类创建一个XlswWrite的Workbook对象,相当于创建一个excel表 And_worksheet()用来创建工作表,默认为 ...
- ubuntu从本地上传文件到云服务器、从云服务器下载文件到本地的命令(亲测有效)
1.ubuntu从本地上传文件到云服务器: sudo scp 本地文件路经 username@目标ip:目标路径 在本地打开终端,输入命令,如: scp ./localfile.txt usernam ...
- python多线程下载大文件_Python threading多线程断点下载文件的方法
这是玩蛇网一篇关于Python多线程下载文件方法的代码实例.文中应用到的python模块和方法有httplib.Python urllib2.Python threading多线程模块.python ...
- python读取docx的内容输出_Python应用 , 读写docx文件!
字处理软件是平时办公必备的同时也是最常用的软件之一,而字处理软件用的最多最频繁的就是微软的word,其扩展名为docx.在日常工作中,可能需要对很多的docx文件进行批处理,例如教师在批阅学生提交的电 ...
- python我想对你说_python学习第6天----文件操作
1.文件操作 python中通过open()函数打开一个文件,获取到文件句柄,然后通过文件句柄就可进行各种操作(句柄就相当于一个变量),文件句柄是一个可迭代对象 打开文件的操作有:r,w,a,r+,w ...
最新文章
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用29
- (005)RN开发 js jsx ts tsx的区别
- 《网络攻防实践》第二周学习总结
- sqlserver 更新 datetime 数据_获取股票分笔数据存储本地
- 有向无环图的拓扑排序
- vue实现星级评价效果
- 设计模式学习笔记1——类与类之间的关系
- linux中的特殊文件权限
- Mathematica开方语法
- 自学python买什么教材-学习Python的正确姿势—基础教学,教科书该怎么买?
- 使用Python编写Prometheus监控metrics接口
- 基于MATLAB的窗函数滤波器设计,基于matlab的FIR滤波器窗函数设计
- BM3D 算法原理详细解析 按过程步骤讲解(附C++实现代码)
- 从高考落榜生到网络专家
- [Python从零到壹] 七.网络爬虫之Requests爬取豆瓣电影TOP250及CSV存储
- PS增效工具Camera Raw 14
- 传奇服务器攻城文件,单机架设传奇服务器第33课:攻城奖励自动发放
- python是高级语言还是低级语言_机械语言/汇编语言/低级语言/高级语言各是指的什么...
- C语言程序设计学习笔记:P1-程序设计与C语言
- Origin画图技巧之设置框图默认设置