Primer upload
This commit is contained in:
39
files/files.py
Normal file
39
files/files.py
Normal 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')
|
||||
|
||||
Reference in New Issue
Block a user