const fileInput = document.getElementById('fileInput'); const fileInfo = document.getElementById('fileInfo'); const form = document.getElementById('uploadForm'); const result = document.getElementById('result'); const uploadBtn = document.getElementById('uploadBtn'); fileInput.addEventListener('change', (e) => { const files = e.target.files; if (files.length > 0) { const names = Array.from(files).map(f => f.name).join(', '); fileInfo.textContent = `Selected: ${files.length} file(s) - ${names}`; } }); form.addEventListener('submit', async (e) => { e.preventDefault(); const files = fileInput.files; if (files.length === 0) { showResult('Please select at least one file', 'error'); return; } uploadBtn.disabled = true; uploadBtn.textContent = 'Uploading...'; const formData = new FormData(); for (let i = 0; i < files.length; i++) { formData.append('files', files[i]); } try { const response = await fetch('/upload', { method: 'POST', body: formData }); const data = await response.json(); if (response.ok) { const links = data.files.map(f => `${window.location.origin}/download/${f}` ).join(''); showResult('Upload successful!
' + links, 'success'); form.reset(); fileInfo.textContent = 'Max size: {{max-size}}MB per file'; } else { showResult('Error: ' + data.error, 'error'); } } catch (error) { showResult('Upload failed: ' + error.message, 'error'); } finally { uploadBtn.disabled = false; uploadBtn.textContent = 'Upload'; } }); function showResult(message, type) { result.innerHTML = message; result.style.display = 'block'; if (type === 'success') { result.style.background = '#d4edda'; result.style.color = '#155724'; result.style.border = '1px solid #c3e6cb'; } else { result.style.background = '#f8d7da'; result.style.color = '#721c24'; result.style.border = '1px solid #f5c6cb'; } }