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实现全局变量的两个解决方法
Jul 03 Python
python使用pyhook监控键盘并实现切换歌曲的功能
Jul 18 Python
python自动格式化json文件的方法
Mar 11 Python
Python基础语法(Python基础知识点)
Feb 28 Python
python如何统计序列中元素
Jul 31 Python
python 输出上个月的月末日期实例
Apr 11 Python
python的中异常处理机制
Aug 30 Python
Flask框架工厂函数用法实例分析
May 25 Python
Django中使用MySQL5.5的教程
Dec 18 Python
Python tcp传输代码实例解析
Mar 18 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
Feb 27 Python
Python中文分词库jieba(结巴分词)详细使用介绍
Apr 07 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
xml+php动态载入与分页
2006/10/09 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
js 事件小结 表格区别
2007/08/13 Javascript
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
2013/05/08 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
2016/09/19 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
Python 文件处理注意事项总结
2017/04/10 Python
numpy.transpose对三维数组的转置方法
2018/04/17 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
Python如何读写CSV文件
2020/08/13 Python
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
小学生家长评语集锦
2014/01/30 职场文书
户外活动总结范文
2014/04/30 职场文书
致运动员的广播稿
2015/08/19 职场文书
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js