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进行数据科学工作的简单入门教程
Apr 01 Python
Python与Java间Socket通信实例代码
Mar 06 Python
Numpy 改变数组维度的几种方法小结
Aug 02 Python
python实现一组典型数据格式转换
Dec 15 Python
浅谈python的深浅拷贝以及fromkeys的用法
Mar 08 Python
Django如何将URL映射到视图
Jul 29 Python
python元组和字典的内建函数实例详解
Oct 22 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
May 25 Python
python批量生成条形码的示例
Oct 10 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
Nov 12 Python
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
Apr 06 Python
python爬取豆瓣电影TOP250数据
May 23 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
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
实例分析javascript中的call()和apply()方法
2014/11/28 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
canvas实现钟表效果
2017/02/13 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
Python 字典dict使用介绍
2014/11/30 Python
python实现音乐下载器
2018/04/15 Python
3分钟学会一个Python小技巧
2018/11/23 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
python 串行执行和并行执行实例
2020/04/30 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
Python类成员继承重写的实现
2020/09/16 Python
盛大笔试题
2016/11/05 面试题
旷课检讨书3000字
2014/02/04 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
社团招新宣传语
2015/07/13 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL