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使用urllib2提交http post请求的方法
May 26 Python
Python使用面向对象方式创建线程实现12306售票系统
Dec 24 Python
centos6.7安装python2.7.11的具体方法
Jan 16 Python
python快速建立超简单的web服务器的实现方法
Feb 17 Python
python 获取list特定元素下标的实例讲解
Apr 09 Python
使用Python如何测试InnoDB与MyISAM的读写性能
Sep 18 Python
python远程连接MySQL数据库
Apr 19 Python
python flask几分钟实现web服务的例子
Jul 26 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
tensorflow 保存模型和取出中间权重例子
Jan 24 Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
May 18 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
Zend的MVC机制使用分析(一)
2013/05/02 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
详谈js模块化规范
2017/07/07 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
Python3数字求和的实例
2019/02/19 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
如何利用python进行时间序列分析
2020/08/04 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
移动通信专业自荐信范文
2013/11/12 职场文书
自我评价200字分享
2013/12/17 职场文书
运动会广播稿50字
2014/01/26 职场文书
料理师求职信
2014/01/30 职场文书
面试后的感谢信范文
2014/02/01 职场文书
留学经费担保书
2014/05/12 职场文书
民警个人对照检查剖析材料
2014/09/17 职场文书
政风行风建设整改方案
2014/10/27 职场文书
将Python代码打包成.exe可执行文件的完整步骤
2021/05/12 Python
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle