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执行外部程序的常用方法小结
Mar 21 Python
python获取本机mac地址和ip地址的方法
Apr 29 Python
详解Python 切片语法
Jun 10 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 Python
python为QT程序添加图标的方法详解
Mar 09 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
Selenium自动化测试工具使用方法汇总
Jun 12 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
Jul 28 Python
Python之字符串的遍历的4种方式
Dec 08 Python
解决import tensorflow导致jupyter内核死亡的问题
Feb 06 Python
Python学习之包与模块详解
Mar 19 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
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
PHP-MySQL教程归纳总结
2008/06/07 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
ecshop适应在PHP7的修改方法解决报错的实现
2016/11/01 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
js登录弹出层特效
2014/03/07 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
什么是JavaScript中的结果值?
2016/10/08 Javascript
canvas实现钟表效果
2017/02/13 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
jQuery实现移动端图片上传预览组件的方法分析
2020/05/01 jQuery
Python进程通信之匿名管道实例讲解
2015/04/11 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
计算机本科生自荐信
2013/10/15 职场文书
HR求职自荐信范文
2014/06/21 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
综合素质评价自我评价
2015/03/06 职场文书
《花钟》教学反思
2016/02/17 职场文书
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers