dx / index.html
COLTO50's picture
Create index.html
ad9949b verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Video Uploader for Hugging Face Spaces</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 800px;
margin: 0 auto;
padding: 20px;
background-color: #f0f0f0;
}
h1 {
color: #333;
text-align: center;
}
#upload-form {
background-color: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
#file-input {
display: none;
}
#file-label {
display: inline-block;
padding: 10px 20px;
background-color: #007bff;
color: white;
cursor: pointer;
border-radius: 4px;
}
#file-name {
margin-top: 10px;
}
#upload-button {
display: block;
width: 100%;
padding: 10px;
background-color: #28a745;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
margin-top: 10px;
}
#progress-bar {
width: 100%;
height: 20px;
background-color: #e0e0e0;
border-radius: 4px;
margin-top: 10px;
overflow: hidden;
}
#progress {
width: 0%;
height: 100%;
background-color: #28a745;
transition: width 0.3s ease;
}
#status {
margin-top: 10px;
text-align: center;
font-weight: bold;
}
</style>
</head>
<body>
<h1>Video Uploader for Hugging Face Spaces</h1>
<div id="upload-form">
<input type="file" id="file-input" accept=".mp4,.mkv,.avi,.mov">
<label for="file-input" id="file-label">Choose File</label>
<div id="file-name"></div>
<button id="upload-button" disabled>Upload</button>
<div id="progress-bar">
<div id="progress"></div>
</div>
<div id="status"></div>
</div>
<script>
const fileInput = document.getElementById('file-input');
const fileLabel = document.getElementById('file-label');
const fileName = document.getElementById('file-name');
const uploadButton = document.getElementById('upload-button');
const progressBar = document.getElementById('progress');
const status = document.getElementById('status');
fileInput.addEventListener('change', (e) => {
if (e.target.files.length > 0) {
fileName.textContent = `Selected file: ${e.target.files[0].name}`;
uploadButton.disabled = false;
} else {
fileName.textContent = '';
uploadButton.disabled = true;
}
});
uploadButton.addEventListener('click', async () => {
const file = fileInput.files[0];
if (!file) return;
const formData = new FormData();
formData.append('file', file);
try {
status.textContent = 'Uploading...';
const response = await fetch('/upload', {
method: 'POST',
body: formData
});
if (response.ok) {
status.textContent = 'Upload successful!';
progressBar.style.width = '100%';
} else {
throw new Error('Upload failed');
}
} catch (error) {
status.textContent = `Error: ${error.message}`;
}
});
</script>
</body>
</html>