SanctuaryCommander/blueprints/upload_slideshow/upload_slideshow.py

48 lines
1.4 KiB
Python

from flask import Blueprint, request, render_template, jsonify, current_app
from utilities.tools import get_db
from werkzeug.utils import secure_filename
import os
upload_photo_bp = Blueprint('upload_slideshow', __name__, url_prefix='/upload', template_folder='.')
@upload_photo_bp.route('/slideshow', methods=['GET', 'POST'])
def get_page():
if request.method == "GET":
return render_get(), 200
elif request.method == "POST":
return upload()
def render_get():
return render_template('upload_slideshow.html')
def upload():
if not request.files['files[]']:
return jsonify({
'status': 'FAILED',
'error': '/upload/slideshow requires 1 or more photos'
}), 400
# TODO Button name data exists
# TODO Button name already exists validation
# TODO File input validation
print(request.files['files[]'])
file = request.files['files[]']
if file:
folder_path = os.path.join(current_app.config["config"]["upload_location"], request.form["name"])
if not os.path.exists(folder_path):
os.makedirs(folder_path)
filename = secure_filename(file.filename)
file.save(os.path.join(folder_path, filename))
get_db().insert(
"media",
["media_name", "media_uri"],
[request.form["name"], os.path.join(folder_path, filename)]
)
return jsonify({
'status': 'SUCCESS'
}), 200