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批量下载图片的三种方法
Apr 22 Python
python删除过期文件的方法
May 29 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
利用Opencv中Houghline方法实现直线检测
Feb 11 Python
python使用Tesseract库识别验证
Mar 21 Python
Python线程池模块ThreadPoolExecutor用法分析
Dec 28 Python
Python多进程编程常用方法解析
Mar 26 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
python中wheel的用法整理
Jun 15 Python
Python答题卡识别并给出分数的实现代码
Jun 22 Python
Python爬虫入门案例之爬取二手房源数据
Oct 16 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 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
一个分页的论坛
2006/10/09 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
JavaScript 撑出页面文字换行
2009/06/15 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
JavaScript中创建对象的模式汇总
2016/04/19 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
欧舒丹澳洲版:L’OCCITANE
2017/07/17 全球购物
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
财务分析个人的自荐书范文
2013/11/24 职场文书
物流业务员岗位职责
2014/02/08 职场文书
司机检讨书
2014/02/13 职场文书
心得体会格式及范文
2016/01/25 职场文书
python pygame入门教程
2021/06/01 Python