|
<!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/[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> |
|
|