let Uploaders = {} Uploaders.S3 = function (entries, onViewError) { entries.forEach(entry => { let xhr = new XMLHttpRequest() onViewError(() => xhr.abort()) xhr.onload = () => (xhr.status === 200 ? entry.done() : entry.error()) xhr.onerror = () => entry.error() xhr.upload.addEventListener("progress", event => { if (event.lengthComputable) { let percent = Math.round((event.loaded / event.total) * 100) entry.progress(percent) } }) xhr.open("PUT", entry.meta.url, true) xhr.send(entry.file) }) } let liveSocket = new LiveSocket("/live", Socket, { uploaders: Uploaders, params: {_csrf_token: csrfToken}, })