document.addEventListener('DOMContentLoaded', () => { const ws = new WebSocket('ws://0.0.0.0:7860/ws'); ws.onmessage = (event) => { const messageDiv = document.getElementById('message'); messageDiv.innerHTML += `
${event.data}
`; }; document.getElementById('uploadButton').addEventListener('click', async () => { const fileInput = document.getElementById('fileInput'); if (fileInput.files.length === 0) { alert('Please select a file to upload.'); return; } const file = fileInput.files[0]; const formData = new FormData(); formData.append('file', file); const progressBar = document.getElementById('uploadProgressBar'); const progressContainer = document.getElementById('uploadProgress'); const messageDiv = document.getElementById('message'); progressContainer.style.display = 'block'; progressBar.style.width = '0%'; progressBar.textContent = '0%'; messageDiv.innerHTML = ''; try { const response = await fetch('http://127.0.0.1:8000/upload_geotiff/', { method: 'POST', body: formData, headers: { 'Accept': 'application/json', } }); if (response.ok) { progressBar.style.width = '50%'; progressBar.textContent = '50%'; const blob = await response.blob(); const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.style.display = 'none'; a.href = url; a.download = 'weed_detections.zip'; document.body.appendChild(a); a.click(); window.URL.revokeObjectURL(url); progressBar.style.width = '100%'; progressBar.textContent = '100%'; messageDiv.innerHTML = 'Weed detection complete. Download the shapefile ZIP
'; } else { messageDiv.innerHTML = 'Error uploading file: ' + response.statusText + '
'; } } catch (error) { console.error('Error:', error); messageDiv.innerHTML = 'Error: ' + error.message + '
'; } }); });