From e649ffa56d060d0e5ae5dbd7fe2bdef5eec584f4 Mon Sep 17 00:00:00 2001 From: Arian Nasr Date: Wed, 4 Mar 2026 02:22:31 -0500 Subject: [PATCH] multi-file uploads --- .gitignore | 1 + main.py | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 091fc37..1814433 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ venv/ setup.sh navidrome-upload.service +.idea/ \ No newline at end of file diff --git a/main.py b/main.py index a305940..9fe4c38 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,5 @@ import os -from flask import Flask, flash, request, redirect +from flask import Flask, request from werkzeug.utils import secure_filename UPLOAD_FOLDER = '/opt/navidrome/music' @@ -15,31 +15,31 @@ def allowed_file(filename): @app.route('/', methods=['GET', 'POST']) def upload_file(): if request.method == 'POST': - # check if the post request has the file part if 'file' not in request.files: - flash('No file part') - return redirect(request.url) - file = request.files['file'] - # If the user does not select a file, the browser submits an - # empty file without a filename. - if file.filename == '': - flash('No selected file') - return redirect(request.url) - if file and allowed_file(file.filename): - filename = secure_filename(file.filename) - file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) - # File saved successfully, return a success message - return f''' -

File {filename} uploaded successfully

- - ''', 200 + return 'No file part', 400 + files = request.files.getlist('file') + for file in files: + if file.filename == '': + return 'No selected file', 400 + if file and allowed_file(file.filename): + filename = secure_filename(file.filename) + file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) + else: + return 'File extension not allowed', 400 + return f''' + + Upload successful +

{len(files)} file(s) uploaded successfully

+ + ''', 200 + return ''' Upload new File

Upload new File

- +
'''