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 14 Python
Python实现查找系统盘中需要找的字符
Jul 14 Python
Python装饰器(decorator)定义与用法详解
Feb 09 Python
Python操作mongodb的9个步骤
Jun 04 Python
解决项目pycharm能运行,在终端却无法运行的问题
Jan 19 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
Python中栈、队列与优先级队列的实现方法
Jun 30 Python
python 数据提取及拆分的实现代码
Aug 26 Python
Pytorch 多块GPU的使用详解
Dec 31 Python
深入了解python列表(LIST)
Jun 08 Python
Python中猜拳游戏与猜筛子游戏的实现方法
Sep 04 Python
Python面试不修改数组找出重复的数字
May 20 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 数组教程 定义数组
2009/10/23 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
php中mail函数发送邮件失败的解决方法
2014/12/24 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
浅析Cookie中的Path与domain
2013/12/18 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
javascript模拟订火车票和退票示例
2014/04/24 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
Python调用C# Com dll组件实战教程
2017/10/12 Python
python实现树形打印目录结构
2018/03/29 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
Python中有几个关键字
2020/06/04 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
一套Delphi的笔试题一
2016/02/14 面试题
小学亲子活动总结
2014/07/01 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
护士个人年终总结
2015/02/13 职场文书
行政介绍信范文
2015/05/04 职场文书
Pandas实现批量拆分与合并Excel的示例代码
2022/05/30 Python