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 相关文章推荐
Ubuntu下安装PyV8
Mar 13 Python
python搭建服务器实现两个Android客户端间收发消息
Apr 12 Python
python 发送和接收ActiveMQ消息的实例
Jan 30 Python
python原类、类的创建过程与方法详解
Jul 19 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
python全局变量引用与修改过程解析
Jan 07 Python
Python使用qrcode二维码库生成二维码方法详解
Feb 17 Python
详解python常用命令行选项与环境变量
Feb 20 Python
Python Numpy中数据的常用保存与读取方法
Apr 01 Python
Python将二维列表list的数据输出(TXT,Excel)
Apr 23 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
详解Python中Pyyaml模块的使用
Oct 08 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引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
php 方便水印和缩略图的图形类
2009/05/21 PHP
php Session存储到Redis的方法
2013/11/04 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
js类中获取外部函数名的方法
2007/08/19 Javascript
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
AngularJS 简单应用实例
2016/07/28 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
2018/03/05 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
python使用两种发邮件的方式smtp和outlook示例
2017/06/02 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
python print出共轭复数的方法详解
2019/06/25 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
软件设计的目标是什么
2016/12/04 面试题
思想政治自我鉴定
2013/10/06 职场文书
考试没考好检讨书
2014/01/31 职场文书
小学少先队活动方案
2014/02/18 职场文书
保护动物倡议书
2014/04/15 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
住房抵押登记委托书
2014/09/27 职场文书
工作自我评价范文
2019/03/21 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers
Java数组与堆栈相关知识总结
2021/06/29 Java/Android