Spaces:
Runtime error
Runtime error
| <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 ; | |
| } | |
| .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="{{ url_for('remove_file', filename=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/[email protected]/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> | |