Spaces:
Runtime error
Runtime error
document.addEventListener('DOMContentLoaded', () => { | |
const ws = new WebSocket('ws://0.0.0.0:7860/ws'); | |
ws.onmessage = (event) => { | |
const messageDiv = document.getElementById('message'); | |
messageDiv.innerHTML += `<p>${event.data}</p>`; | |
}; | |
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 = '<p>Weed detection complete. <a href="' + url + '" download="weed_detections.zip">Download the shapefile ZIP</a></p>'; | |
} else { | |
messageDiv.innerHTML = '<p>Error uploading file: ' + response.statusText + '</p>'; | |
} | |
} catch (error) { | |
console.error('Error:', error); | |
messageDiv.innerHTML = '<p>Error: ' + error.message + '</p>'; | |
} | |
}); | |
}); | |