Primer upload

This commit is contained in:
Daniel Cortes
2019-02-19 01:19:41 -03:00
commit 2633f84fc7
14 changed files with 1299 additions and 0 deletions

39
files/files.py Normal file
View File

@@ -0,0 +1,39 @@
import os
from flask import Flask, Blueprint, flash, request, redirect, url_for, current_app, render_template, send_from_directory
from werkzeug.utils import secure_filename
from files.auth import admin_required
import random
ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif', 'md'])
bp = Blueprint('files', __name__)
bp.add_url_rule('/uploads/<path:filename>', 'uploaded_file', build_only=True)
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@bp.route('/', methods=['GET', 'POST'])
def index():
filenames = os.listdir(current_app.config['UPLOAD_FOLDER'])
return render_template('files/index.html', filenames=filenames)
@bp.route('/upload', methods=['GET', 'POST'])
@admin_required
def upload_file():
if request.method == 'POST':
if 'file' not in request.files:
flash('No file part')
return redirect(request.url)
file = request.files['file']
if file.filename == '':
flash('No seleted file')
return rediret(request.url)
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(current_app.config['UPLOAD_FOLDER'], filename))
return redirect(url_for('index'))
return render_template('files/upload.html')