python3 flask实现文件上传功能


Posted in Python onMarch 20, 2020

本文实例为大家分享了python3-flask文件上传操作的具体代码,供大家参考,具体内容如下

# -*- coding: utf-8 -*-
import os
import uuid
import platform
from flask import Flask,request,redirect,url_for
from werkzeug.utils import secure_filename

if platform.system() == "Windows":
 slash = '\\'
else:
 platform.system()=="Linux"
 slash = '/'
UPLOAD_FOLDER = 'upload'
ALLOW_EXTENSIONS = set(['html', 'htm', 'doc', 'docx', 'mht', 'pdf'])
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
#判断文件夹是否存在,如果不存在则创建
if not os.path.exists(UPLOAD_FOLDER):
 os.makedirs(UPLOAD_FOLDER)
else:
 pass
# 判断文件后缀是否在列表中
def allowed_file(filename):
 return '.' in filename and \
   filename.rsplit('.', 1)[1] in ALLOW_EXTENSIONS

@app.route('/',methods=['GET','POST'])
def upload_file():
 if request.method =='POST':
  #获取post过来的文件名称,从name=file参数中获取
  file = request.files['file']
  if file and allowed_file(file.filename):
   # secure_filename方法会去掉文件名中的中文
   filename = secure_filename(file.filename)
   #因为上次的文件可能有重名,因此使用uuid保存文件
   file_name = str(uuid.uuid4()) + '.' + filename.rsplit('.', 1)[1]
   file.save(os.path.join(app.config['UPLOAD_FOLDER'],file_name))
   base_path = os.getcwd()
   file_path = base_path + slash + app.config['UPLOAD_FOLDER'] + slash + file_name
   print(file_path)
   return redirect(url_for('upload_file',filename = file_name))
 return '''
 <!doctype html>
 <title>Upload new File</title>
 <h1>Upload new File</h1>
 <form action="" method=post enctype=multipart/form-data>
  <p><input type=file name=file>
   <input type=submit value=Upload>
 </form>
 '''
if __name__ == "__main__":
 app.run(host='0.0.0.0',port=5000)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python列表list数组array用法实例解析
Oct 28 Python
详解python的数字类型变量与其方法
Nov 20 Python
python使用webdriver爬取微信公众号
Aug 31 Python
对Python3+gdal 读取tiff格式数据的实例讲解
Dec 04 Python
对python中if语句的真假判断实例详解
Feb 18 Python
django-filter和普通查询的例子
Aug 12 Python
详解PyTorch中Tensor的高阶操作
Aug 18 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 Python
python运用sklearn实现KNN分类算法
Oct 16 Python
Python基于Socket实现简单聊天室
Feb 17 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
Python爬取qq空间说说的实例代码
Aug 17 #Python
django进阶之cookie和session的使用示例
Aug 17 #Python
Django 登陆验证码和中间件的实现
Aug 17 #Python
python读取Excel实例详解
Aug 17 #Python
python框架中flask知识点总结
Aug 17 #Python
Flask Web开发入门之文件上传(八)
Aug 17 #Python
python操作excel的方法
Aug 16 #Python
You might like
PHP封装cURL工具类与应用示例
2019/07/01 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
js对象的比较
2011/02/26 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
使用Ajax与服务器(JSON)通信实例
2016/11/04 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
js图片上传的封装代码
2017/08/01 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
python使用urllib模块和pyquery实现阿里巴巴排名查询
2014/01/16 Python
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
python Celery定时任务的示例
2018/03/13 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
乡下人家教学反思
2014/02/01 职场文书
2014年党支部学习材料
2014/05/19 职场文书
通知函的格式
2015/04/27 职场文书
新兵入伍决心书
2015/09/22 职场文书
开网店计划分析
2019/07/30 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
JavaScript阻止事件冒泡的方法
2021/12/06 Javascript
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers