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 web程序
Sep 11 Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
Nov 21 Python
python编程开发之textwrap文本样式处理技巧
Nov 13 Python
Python实现将xml导入至excel
Nov 20 Python
python中如何使用朴素贝叶斯算法
Apr 06 Python
利用python解决mysql视图导入导出依赖的问题
Dec 17 Python
django ManyToManyField多对多关系的实例详解
Aug 09 Python
Python pandas.DataFrame 找出有空值的行
Sep 09 Python
Python可变参数会自动填充前面的默认同名参数实例
Nov 18 Python
Python3 pywin32模块安装的详细步骤
May 26 Python
基于python调用jenkins-cli实现快速发布
Aug 14 Python
python线程池 ThreadPoolExecutor 的用法示例
Oct 10 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 代码优化的42条建议 推荐
2009/09/25 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
php 冒泡排序 交换排序法
2011/05/10 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
详解iframe跨域的几种常用方法(小结)
2019/04/29 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
解决Python中pandas读取*.csv文件出现编码问题
2019/07/12 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
python多线程同步实例教程
2019/08/11 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
python 实现按对象传值
2019/12/26 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
Vrbo英国:预订度假屋
2020/08/19 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
建筑系毕业生自我鉴定
2014/01/24 职场文书
食堂采购员岗位职责
2014/03/17 职场文书
大学生思想道德自我评价
2015/03/09 职场文书