generated from justuser-31/mrl_v1_license
Добавление прогресс-бара загрузки
This commit is contained in:
parent
23ddda7555
commit
c9508f479a
52
handlers.py
52
handlers.py
@ -222,16 +222,66 @@ class FileServerHandler(BaseHTTPRequestHandler):
|
|||||||
<div class="quota-info">
|
<div class="quota-info">
|
||||||
Quota: {available_mb} MB | Used: {used_mb:.2f} MB
|
Quota: {available_mb} MB | Used: {used_mb:.2f} MB
|
||||||
</div>
|
</div>
|
||||||
<form method="POST" enctype="multipart/form-data" action="/upload">
|
|
||||||
|
<!-- Upload Form -->
|
||||||
|
<form id="uploadForm" enctype="multipart/form-data" action="/upload" method="post">
|
||||||
<input class="regular-button" type="file" name="file" required>
|
<input class="regular-button" type="file" name="file" required>
|
||||||
<button class="regular-button" type="submit">Upload</button>
|
<button class="regular-button" type="submit">Upload</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<!-- Progress Container -->
|
||||||
|
<div id="progressContainer" style="display:none; margin-top: 10px;">
|
||||||
|
<label for="uploadProgress">Uploading:</label>
|
||||||
|
<progress id="uploadProgress" value="0" max="100"></progress>
|
||||||
|
<span id="percentLabel">0%</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
{files_html if files_html else "<p>No files yet.</p>"}
|
{files_html if files_html else "<p>No files yet.</p>"}
|
||||||
<p>
|
<p>
|
||||||
<a class="back-btn" href="/logout">Logout</a>
|
<a class="back-btn" href="/logout">Logout</a>
|
||||||
<a class="back-btn" href="/">Back to Home</a>
|
<a class="back-btn" href="/">Back to Home</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
document.getElementById('uploadForm').addEventListener('submit', function(e) {{
|
||||||
|
e.preventDefault();
|
||||||
|
const formData = new FormData(this);
|
||||||
|
const xhr = new XMLHttpRequest();
|
||||||
|
|
||||||
|
// Show progress container
|
||||||
|
const progressContainer = document.getElementById('progressContainer');
|
||||||
|
const progressBar = document.getElementById('uploadProgress');
|
||||||
|
const percentLabel = document.getElementById('percentLabel');
|
||||||
|
|
||||||
|
progressContainer.style.display = 'block';
|
||||||
|
progressBar.value = 0;
|
||||||
|
percentLabel.textContent = '0%';
|
||||||
|
|
||||||
|
xhr.upload.addEventListener('progress', function(evt) {{
|
||||||
|
if (evt.lengthComputable) {{
|
||||||
|
const percentComplete = Math.round((evt.loaded / evt.total) * 100);
|
||||||
|
progressBar.value = percentComplete;
|
||||||
|
percentLabel.textContent = percentComplete + '%';
|
||||||
|
}}
|
||||||
|
}});
|
||||||
|
|
||||||
|
xhr.onload = function() {{
|
||||||
|
if (xhr.status === 200 || xhr.status === 302) {{
|
||||||
|
window.location.reload(); // Reload to see uploaded file
|
||||||
|
}} else {{
|
||||||
|
alert('Upload failed.');
|
||||||
|
}}
|
||||||
|
}};
|
||||||
|
|
||||||
|
xhr.onerror = function() {{
|
||||||
|
alert('Network error occurred.');
|
||||||
|
}};
|
||||||
|
|
||||||
|
xhr.open("POST", "/upload");
|
||||||
|
xhr.send(formData);
|
||||||
|
}});
|
||||||
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
"""
|
"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user