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)

最新文章

  1. iOS - Push 通知推送
  2. Burp Suite 常用功能 0x01 扫描后台
  3. IntelliJ IDEA 13试用手记(附详细截图)
  4. C# 后台获取WebApi 方法
  5. IOS之资源收集--很好的github网址
  6. Delphi7 安装ICS,与简单使用
  7. Java访问USB设备
  8. ACM Fibonacci数 计算
  9. [leetcode-442-Find All Duplicates in an Array]
  10. Chrome浏览器扩展开发系列之十三:消息传递Message
  11. JavaScript学习日志:关于js分号
  12. Ecshop中transport和jquery不兼容的解决方案
  13. PGM:图模型学习概述
  14. spring boot 拦截异常 统一处理
  15. [转] Web MVC简介
  16. 【三分】light bulb(zoj3203)
  17. 一篇你看了就懂的DNS详解
  18. iOS UI-(多)视图控制器的生命周期、加载方法和模态视图方法以及屌丝方法
  19. [DBSDFZOJ 多校联训] 就
  20. js Date对象要注意的问题(时间转换)

热门文章

  1. 从零搭建Prometheus监控报警系统
  2. TensorFlow实现时间序列预测
  3. JavaScript 浅析数组对象与类数组对象
  4. 【FPGA技巧篇一】FPGA设计的四种常用思想与技巧之一 :乒乓操作
  5. search(11)- elastic4s-模糊查询
  6. Day_09【常用API】扩展案例8_计算字符'j'和字符串'java'在字符串中出现的次数
  7. 【Hadoop离线基础总结】MapReduce倒排索引建立
  8. linux centos7搭建redis-5.0.5
  9. Cassandra数据建模
  10. TreeSet的两种实现方法:Comparable和Comparator(Java比较器)