最近刚学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. python下载文件传到服务器_windows上python上传下载文件到linux服务器指定路径【转】...

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

  2. Python监控目录文件夹,并使用SFTP上传目录及文件到linux服务器

    Python 扫描监控本地文件夹并进行超大文件上传 方案1:WebUploader大文件分块多线程并发上传 方案2:watchdog目录文件夹监控,paramiko STFP上传服务器 方案3:优化2 ...

  3. python3 上传文件到目标机器_再见Python 2.7,你好Python 3.7

    安装python3 直接下载安装 1.下载地址如下:python 3.7 2.点击下载好的pkg文件进行安装 3.安装完成之后,python 3.70的默认安装路径如下: /Library/Frame ...

  4. pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存

    pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存 目录 输出结果 代码实现 输出结果 代码实现 # -*- codi ...

  5. AWS S3 Windows系统下的文件夹上传基于python

    AWS S3 上传文件,基于cmd命令行发现无法上传文件夹,只能上传单个文件,不知道是我能力不行还是什么原因,如果有大佬了解的可以在下面评论下! 一.环境配置 1.win10 X64: 2.awscl ...

  6. python上传文件到onedrive_基于Python的onedrive文件本地化浏览系统–PyOne

    基于Python的onedrive文件本地化浏览系统–PyOne PyOne是一款基于Python-Flask的onedrive文件本地化浏览系统,使用MongoDB储存文件列表,使用redis缓存数 ...

  7. python第三方库文件传输_本地 Python 代码上传到 Python 第三方库(Pypi)

    程序员对于编程都有自己的"套路",好的套路都会得到复用和 IT 界的传播.这时有一个疑问,怎样来实现呢?小编这里就准备介绍如何将自己写的 Python 包上传到 Python 官网 ...

  8. python selenium 文件上传_Python+Selenium学习--上传文件

    场景 文件上传操作也比较常见功能之一,上传功能操作webdriver 并没有提供对应的方法,关键上传文件的思路. 上传过程一般要打开一个系统的window 窗口,从窗口选择本地文件添加.所以,一般会卡 ...

  9. springboot调用python脚本_Springboot实现上传文件接口,使用python的requests进行组装报文上传文件的方法...

    记录瞬间 近段时间使用Springboot实现了文件的上传服务,但是在使用python的requests进行post上传时,总是报错. 比如: 1.Current request is not a m ...

  10. python接口自动化(三十) 上传文件时自动判断文件类型(filetype)

    前言 如何判断一个文件的类型呢,判断这个文件是png还是jpg,还是MP3文件?filetype包是python用来判断文件类型的依赖包,github地址:https://github.com/h2n ...

最新文章

  1. You might want to run 'apt-get -f install' to correct these: The following packages have unmet depen
  2. ubuntu 18.04安装米聊
  3. 【20:30直播】网易老司机聊程序员的职场道路选择
  4. netty系列之:使用UDP协议
  5. 验证回文串Python解法
  6. LeetCode MySQL 1164. 指定日期的产品价格 *
  7. 全球首发!计算机视觉Polygon Mesh Processing总结7——Remeshing Local Structure
  8. c++字符串string操作全解
  9. oracle10g rac导出ocr,Oracle RAC 迁移OCR(10g)
  10. 网页服务器移机设置,手头有一台服务器,应该怎么配置才能正常作为网站服务器运行呢?...
  11. C#操作Word书签模板
  12. 知网查重报告html乱码,知网查重报告出现乱码怎么办
  13. 英文名字的昵称(亲切的叫法)
  14. 计算机辅助审计的应用研究,计算机辅助审计技术在我国的应用状况研究(原稿)...
  15. Android过渡框架之共享元素过渡
  16. #Paper Reading# Efficient Heterogeneous Collaborative Filtering without NS for Recommendation
  17. python实现标号法确定最短路径
  18. 自动驾驶在干线物流的商业化进展综述
  19. 美漂数据科学家年薪多少?爬了6年H1B签证数据发现,招的人多了,但钱少了
  20. ASP.NET(C#)常用数据加密和解密方法

热门文章

  1. java 连接远程服务器_java实现连接远程服务器并执行命令的基本原理
  2. abap数据类型转换_ABAP 中JSON格式的转换与解析
  3. python中__init__方法_关于python中__init__方法理解
  4. 多媒体计算机技术19秋作业1,东师多媒体计算机技术19春在线作业1【标准答案】.doc...
  5. 高并发负载均衡——网络协议原理
  6. 仓库货位卡标识牌_【干货】仓库布局,你想学啊,我教你啊!
  7. 基于Java+jsp+servlet的养老院管理系统设计和实现
  8. android 对话框 重复,如何在Android上重复使用AlertDialog for Yes / No?
  9. 资阳停车场系统推荐_详细讲解停车场管理车牌识别系统安装
  10. conv2d的输入_pytorch1.0中torch.nn.Conv2d用法详解