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 的 with 语句详解
Jun 13 Python
Python脚本实现12306火车票查询系统
Sep 30 Python
一文总结学习Python的14张思维导图
Oct 17 Python
Sublime开发python程序的示例代码
Jan 24 Python
python 读写文件,按行修改文件的方法
Jul 12 Python
对Python中内置异常层次结构详解
Oct 18 Python
详解Python3定时器任务代码
Sep 23 Python
Python List列表对象内置方法实例详解
Oct 22 Python
python文字转语音实现过程解析
Nov 12 Python
win10下python2和python3共存问题解决方法
Dec 23 Python
python时间日期操作方法实例小结
Feb 06 Python
python 进制转换 int、bin、oct、hex的原理
Jan 13 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/01/07 PHP
php中fsockopen用法实例
2015/01/05 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
ext监听事件方法[初级篇]
2008/04/27 Javascript
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
JavaScript iframe数据共享接口实现方法
2016/01/06 Javascript
详解Vue2.x-directive的学习笔记
2017/07/17 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
Python 音频生成器的实现示例
2019/12/24 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
简历上的自我评价怎么写
2014/01/28 职场文书
有兼职工作经历的简历自我评价
2014/03/07 职场文书
新法人代表任命书
2014/06/06 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
2014年应急工作总结
2014/12/11 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
2019求职信大礼包
2019/05/15 职场文书