最近刚学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实现上传下载文件功能相关推荐

  1. android ftp同步程序,ftp同步 安卓,安卓手机ftp上传下载文件功能同步视频照片

    手机拍照越来方便,手机里的照片也越积越多,手机运行缓慢,本文利用安卓的每步FTP服务APP来自动实现手机视频照片的同步,释放手机被占用的存储空间.在机顶盒上运行每步FTP服务,机顶盒USB口连接U盘做 ...

  2. python实现文件上传功能_python实现上传下载文件功能

    最近刚学python,遇到上传下载文件功能需求,记录下! django web项目,前端上传控件用的是uploadify. 文件上传 - 后台view 的 Python代码如下: @csrf_exem ...

  3. python 文件上传下载,python实现上传下载文件功能

    最近刚学python,遇到上传下载文件功能需求,记录下! django web项目,前端上传控件用的是uploadify. 文件上传 - 后台view 的 Python代码如下: @csrf_exem ...

  4. python get 下载 目录_python实现支持目录FTP上传下载文件的方法

    本文实例讲述了python实现支持目录FTP上传下载文件的方法.分享给大家供大家参考.具体如下: 该程序支持ftp上传下载文件和目录.适用于windows和linux平台. #!/usr/bin/en ...

  5. python上传本地文件到ftp_python实现的简单FTP上传下载文件实例

    本文实例讲述了python实现的简单FTP上传下载文件的方法.分享给大家供大家参考.具体如下: python本身自带一个FTP模块,可以实现上传下载的函数功能. #!/usr/bin/env pyth ...

  6. python下载文件传到服务器_windows上python上传下载文件到linux服务器指定路径【转】...

    从windows上传文件到linux,目录下的文件夹自动创建 #!/usr/bin/env python # coding: utf-8 import paramiko import datetime ...

  7. 初级版python登录验证,上传下载文件加MD5文件校验

    服务器端程序 import socket import json import struct import hashlib import osdef md5_code(usr, pwd):ret = ...

  8. python文件拷贝并校验_初级版python登录验证,上传下载文件加MD5文件校验

    importosimportjsonimportsocketimportstructimporthashlib#import time deflogin(): usr= input('请输入用户名:' ...

  9. 如何在linux系统下使用百度云盘上传下载文件?

    学习目标: 如何在linux系统下使用百度云盘上传下载文件? 环境准备: linux操作系统 python开发运行环境 文件下载: 1.Linux系统安装工具 pip install requests ...

最新文章

  1. android Merger 代替 FrameLayout:布局优化
  2. 在JavaScript中解析JSON? [重复]
  3. HDU-1128 Self Numbers 筛选
  4. C#异步编程的实现方式(4)——Task任务
  5. kinect数据读取
  6. 又是毕业季I 【O(1)数论】(洛谷P1372题题解,Java语言描述)
  7. 2017.5.7 过河 失败总结
  8. python字符串无效的原因_Python(60)扩展和嵌入1.使用 C 或 C++ 扩展 Python
  9. 智能优化算法:黏菌优化算法 - 附代码
  10. java热门框架_java今年最流行的3大框架
  11. MSDN关于消息和消息队列的详细解析
  12. networkx设置节点的大小_节点大小取决于NetworkX上的节点度
  13. 骗子丛生的58正失去“神奇”魔法
  14. 什么是php递归算法_PHP递归算法(三)
  15. SSM框架整合(以黑马程序员2022最新SSM框架教程P59为例)
  16. imagecopyresampled要生成彩色却生成了灰色图片
  17. 跟青翼一起学Qt4编程系列 之 2-1标准对话框
  18. 什么是hardcode编码
  19. HTML强制关机,如何强制关机【处置技巧】
  20. 苹果备份与恢复_手机照片误删了怎么恢复?不得不说的好方法

热门文章

  1. js和java中URI的编码和解码
  2. Banner 自动无限轮播(普通)
  3. Rational Rose2007无法启动,提示缺少“suite objects.dll”
  4. 位运算一些简单的应用
  5. JDBC驱动程序的四种方式
  6. 关于面试的一些问题合集
  7. 【转】CAD2012打开自动关闭解决方法
  8. Android 三种方式实现自定义圆形页面加载中效果的进度条
  9. MVC中实现 加载更多...
  10. 水晶报表主子报表分页问题