使用flask实现简单的文件上传
from flask import Flask, redirect, render_template, request, url_for
from werkzeug.utils import secure_filename
import os
app = Flask(__name__)
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'doc']) # 设置允许上传的文件的类型 def allowed_file(filename):
"""
上传的文件类型
:param filename: 传入的文件名
:return: 返回True 或者 False
"""
return "." in filename and filename.rsplit(".", 1)[1] in ALLOWED_EXTENSIONS @app.route("/", methods=["GET", "POST"])
def file_name():
"""
上传文件
:return: 返回上传文件的url地址
"""
if request.method == "POST":
f = request.files["file"]
if f and allowed_file(f.filename):
path = os.path.split(os.getcwd())[0]
print(path)
file = path+"/demo/templates/"+secure_filename(f.filename)
print(file)
f.save(file)
return redirect("/uploads")
else:
return redirect(url_for("fail"))
return render_template("file_name.html") @app.route("/uploads")
def successful():
"""
设置返回路径的视图函数
:return:
"""
url = url_for("file_name")
return '访问文件的路径:http://127.0.0.1:5000{}'.format(url) @app.route("/fail")
def fail():
"""
文件类型不符合的视图函数
:return:
"""
return "文件不符合规则" if __name__ == '__main__':
app.run(debug=True)
使用flask实现简单的文件上传的更多相关文章
- 服务器文档下载zip格式  SQL Server SQL分页查询  C#过滤html标签  EF 延时加载与死锁  在JS方法中返回多个值的三种方法(转载)  IEnumerable,ICollection,IList接口问题  不吹不擂,你想要的Python面试都在这里了【315+道题】   基于mvc三层架构和ajax技术实现最简单的文件上传  事件管理
		服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ... 
- 使用jsp/servlet简单实现文件上传与下载
		使用JSP/Servlet简单实现文件上传与下载 通过学习黑马jsp教学视频,我学会了使用jsp与servlet简单地实现web的文件的上传与下载,首先感谢黑马.好了,下面来简单了解如何通过使用 ... 
- Django 实现简单的文件上传
		今天分享一下Django实现的简单的文件上传的小例子. 步骤 创建Django项目,创建Django应用 设计模型 处理urls.py 以及views.py 设计模板,设计表单 运行项目,查看数据库 ... 
- DVWA靶机--简单的文件上传漏洞
		简单的文件上传漏洞(靶机安全级别:low) 事先准备好一句话木马,密码为pass 上传一句话木马,显示上传路径(一般网站是不会显示路径的,这里靶机为了方便你测试漏洞,直接显示出了路径: ../../h ... 
- Java实现一个简单的文件上传案例
		Java实现一个简单的文件上传案例 实现流程: 1.客户端从硬盘读取文件数据到程序中 2.客户端输出流,写出文件到服务端 3.服务端输出流,读取文件数据到服务端中 4.输出流,写出文件数据到服务器硬盘 ... 
- struts2中简单的文件上传
		2016-08-31 一. 文件上传 利用commons-fileupload-1.2.1.jar实现简单的上传文件,首先在页面上填写表单,记得加上enctype="multip ... 
- nodejs 实现简单的文件上传功能
		首先需要大家看一下目录结构,然后开始一点开始我们的小demo. 文件上传总计分为三种方式: 1.通过flash,activeX等第三方插件实现文件上传功能. 2.通过html的form标签实现文件上传 ... 
- java 网络编程之TCP通信和简单的文件上传功能
		*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ... 
- springboot实现简单的文件上传
		承接上一篇,这里记录一下简单的springboot文件上传的方式 首先,springboot简单文件上传不需要添加额外的jar包和配置 这里贴一下后端controller层的实现代码 补一份前台的HT ... 
随机推荐
- 硬纪元AI峰会前瞻:如何才能做好智能家居?用户体验最重要
			用户体验不到位,市场就不能说真的发展起来. 可以明显的感觉到,随着人工智能.物联网等技术的发展和应用,我们的生活正在发生翻天覆地的变化,其中感觉最为明显的就是智能家居. 据前瞻产业研究院的数据统计,我 ... 
- Ngxin 开启CDN 日志获取不了真实IP的解决办法。
			nginx配置里面在http{ 后加入如下两行代码即可: set_real_ip_from 0.0.0.0/0;real_ip_header X-Forwarded-For; 重启nginx生效. 注 ... 
- Onedrive File Open Problem
			在用Onenote 2016写笔记时,同步到Onedrive后就变成了Internet快捷方式,而且直接打开时会出现提示: 原因 用Onenote客户端在Onedrive上创建的笔记本是一种特殊文件, ... 
- vue父组件向子组件传对象,不实时更新解决
			vue报错:void mutating a prop directly since the value will be overwritten whenever the parent componen ... 
- 2019年 ICPC亚洲区预赛(上海赛区)总结
			首先,我要说,我输了,输给了自己的无知,输给了自己的心态与实力. 上海区域赛,打铁而归,最终还是没有比过自己SLG的朋友.要说什么呢?实力的差距,还是说给自己的失败找借口?不能进入金牌区,为什么铜牌区 ... 
- 疯子的算法总结(九) 图论中的矩阵应用 Part 2  矩阵树 基尔霍夫矩阵定理  生成树计数 Matrix-Tree
			定理: 1.设G为无向图,设矩阵D为图G的度矩阵,设C为图G的邻接矩阵. 2.对于矩阵D,D[i][j]当 i!=j 时,是一条边,对于一条边而言无度可言为0,当i==j时表示一点,代表点i的度. 即 ... 
- tomcat8调优
			a. tomcat的运行原理: 1. Tomcat是运行在JVM中的一个进程.它定义为[中间件],顾名思义,是一个在Java项目与JVM之间的中间容器. 2. Web项目的本质,是一大堆的资源文件和方 ... 
- spring的单元测试
			如果spring 4.3.18这个版本的spring要使用junit,需要使用junit的junit-4.12之上的版本.使用这个版本junit的时 候需要引入hamcrest-all的jar包.之前 ... 
- matlab数值数据和变量名
			1.2MATLAB数值数据 l 数值数据类型的分类 l 数值数据的输出格式 l 常用数学函数内部函数 1.数值数据类型的分类 l 整型 l 浮点型 l 复数型 (1)整型 1.数值数据类型 ... 
- 王颖奇 20171010129《面向对象程序设计(java)》第十六周学习总结
			实验十六 线程技术 实验时间 2018-12-8 理论部分: 并发⚫ 线程的概念⚫ 中断线程⚫ 线程状态⚫ 多线程调度⚫ 线程同步 1.线程的概念 程序是一段静态的代码,它是应用程序执行的蓝本. 进 ... 
