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中针对函数处理的特殊方法
Mar 06 Python
python使用正则表达式检测密码强度源码分享
Jun 11 Python
利用Psyco提升Python运行速度
Dec 24 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 Python
Python退火算法在高次方程的应用
Jul 26 Python
Python爬虫之正则表达式的使用教程详解
Oct 25 Python
python读取txt文件,去掉空格计算每行长度的方法
Dec 20 Python
Python中的集合介绍
Jan 28 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 Python
Python insert() / append() 用法 Leetcode实战演示
Mar 31 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 删除无限级目录与文件代码共享
2008/11/22 PHP
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
php异常处理捕获错误整理
2019/09/23 PHP
javascript 命名规则 变量命名规则
2010/02/25 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
VUE 全局变量的几种实现方式
2018/08/22 Javascript
详解Webpack4多页应用打包方案
2020/07/16 Javascript
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
python中的for循环
2018/09/28 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
2020/04/07 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
python绘制高斯曲线
2021/02/19 Python
几道Web/Ajax的面试题
2016/11/05 面试题
机械制造与自动化应届生求职信
2013/11/16 职场文书
小区消防演习方案
2014/02/21 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
写给领导的感谢信
2015/01/22 职场文书
毕业答辩开场白范文
2015/05/27 职场文书