<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>File Upload and Process</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"> <style> body { background-color: #1d2329; color: #e0e0e0; font-family: 'Arial', sans-serif; } .container { margin-top: 50px; } .card { background-color: #2a2f36; border: none; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); } .card-header { background-color: #3a4149; color: white; border-top-left-radius: 10px; border-top-right-radius: 10px; } .btn-primary, .btn-success, .btn-info { border-radius: 50px; padding: 10px; width: 100%; } .btn-primary { background-color: #007bff; border: none; } .btn-success { background-color: #28a745; border: none; } .btn-info { background-color: #17a2b8; border: none; } .uploaded-file { margin-top: 15px; display: flex; align-items: center; } .uploaded-file span { font-size: 16px; margin-left: 10px; color: #e0e0e0; } .remove-file { cursor: pointer; color: #dc3545; margin-left: 10px; } .form-control-file { border-radius: 50px; border: 2px solid #4e5d6c; padding: 10px; background-color: #3a4149; color: #e0e0e0; font-size: 16px; } .form-control { border-radius: 50px; background-color: #3a4149; color: #e0e0e0; border: 2px solid #4e5d6c; } .mt-3 { margin-top: 20px !important; } .card-footer { text-align: center; border-top: 1px solid #4e5d6c; padding: 15px; } .custom-file-upload { border: 1px solid #4e5d6c; display: inline-block; padding: 6px 12px; cursor: pointer; border-radius: 50px; background-color: #3a4149; color: #e0e0e0; } .custom-file-upload input[type="file"] { display: none; } .form-group { margin-top: 20px; } #loadingSpinner { display: none; margin-top: 20px; } </style> </head> <body> <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-header text-center"> <h2>Upload and Process Files</h2> </div> <div class="card-body"> <form id="uploadForm" action="{{ url_for('upload_file') }}" method="post" enctype="multipart/form-data"> <h4 class="text-center">Upload Images</h4> <input type="file" name="files" multiple class="form-control-file" required> <button type="submit" class="btn btn-primary mt-3">Upload</button> </form> {% if uploaded_files %} <h4 class="mt-4">Uploaded Files:</h4> <ul class="list-group"> {% for file in uploaded_files %} <li class="list-group-item d-flex justify-content-between align-items-center" style="background-color: #3a4149; color: #e0e0e0;"> {{ file }} <a href="/remove_file" class="remove-file" title="Remove File">×</a> </li> {% endfor %} </ul> {% endif %} <form id="processForm" method="post" action="/process" class="mt-3"> <button id="processBtn" type="submit" class="btn btn-success">Process All Files</button> </form> <div id="loadingSpinner" class="text-center"> <div class="spinner-border text-primary" role="status"> <span class="sr-only">Processing...</span> </div> </div> </div> <div class="card-footer"> <small>© 2024 | Webashalar Pvt. Ltd.</small> </div> </div> </div> </div> </div> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> <script> document.getElementById("processForm").addEventListener("submit", function(event) { document.getElementById("loadingSpinner").style.display = "block"; document.getElementById("processBtn").style.display = "none"; }); </script> </body> </html>