#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = 'xk'
from flask import Flask,render_template, request, send_from_directory,jsonify
import os
app = Flask(__name__)
# os.getcwd() 返回当前工作目录。 E:\accept\python\uploadFile\www
# 设置文件的上传目录
upload_file_folder = os.path.join(os.getcwd(),'upload') # E:\accept\python\uploadFile\www\upload
'''
启动应用打开 index.html
'''
@app.route('/')
def home():
return render_template('index.html')
'''
上传操作
'''
@app.route('/upload', methods=['POST'])
def upload():
file = request.files['file']
if not file:
return render_template('index.html', status='null')
# 检查文件类型
if check_file_type(file.filename):
# 一句代码完成保存文件操作
file.save(os.path.join(upload_file_folder, file.filename))
return render_template('index.html', status='OK')
else:
return 'NO'
@app.route('/fetch_files')
def fetch_list():
# 创建一个list作为容器,存放上传目录下的所有文件
file_link_list = []
#判断upload_file_folder目录是否存在,如果不存在,创建目录
if not os.path.exists(upload_file_folder):
# 创建目录
os.mkdir(upload_file_folder)
# 列举目录下的所有文件
file_list = os.listdir(upload_file_folder)
# 遍历list集合
for filename in file_list:
# 将文件名添加到list集合中
file_link_list.append(filename)
return jsonify(file_link_list)
'''
文件下载操作
'''
@app.route('/download/<filename>')
def download(filename):
# 中文名的文件无法下载 2017-12-3 14:38:19
return send_from_directory(upload_file_folder,filename, as_attachment=True)
'''
检查文件类型
'''
def check_file_type(filename):
file_type = [ 'jpg', 'doc', 'docx', 'txt', 'pdf', 'PDF','png', 'PNG', 'xls', 'rar', 'exe', 'md', 'zip']
# 获取文件后缀
ext = filename.split('.')[1]
# 判断文件是否是允许上传得类型
if ext in file_type:
return True
else:
return False
if __name__ == '__main__':
app.run(debug=True)
(技术)Python 3 Flask实现文件上传
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...