Tengo un formulario HTML que se utiliza para cargar un archivo en el servidor. Esto funciona correctamente, pero ahora estoy tratando de expandir la capacidad de modo que selecciono un archivo tar que consta de dos archivos binarios. Luego, descomprima los archivos y, según ciertas condiciones, cargue el primero o el segundo archivo.
Esto es lo que he hecho hasta ahora
Necesito ayuda para descubrir cómo tomar ByteArray para cualquiera de los archivos y luego agregarlos a FormData para poder cargarlos.
Cualquier ayuda sería apreciada.
Aquí hay fragmentos de mi código
Formulario HTML
<form id="upform" enctype="multipart/form-data" action="cgi-bin/upload2.cgi"> Firmware file: <input id='userfile' name="userfile" type="file" width=50 > <input type ="submit" name="submitBtn" value="send file"> </form>Descomprimir código
function sendData() { var formData = new FormData(form); var action = form.getAttribute('action'); filesize = file.files[0].size; var reader = new FileReader(); reader.onload = function() { untar(reader.result).then( function (extractedFiles) { // onSuccess console.log('success'); formData.delete('userfile'); var reader2 = new FileReader(); reader2.onload = function() { formData.append('userfile', reader2.result); upload(formData); } var blob = new Blob([extractedFiles[0]], {type : 'multipart/form-data'}); reader2.readAsDataURL(blob); // var f = URL.createObjectURL(blob); }, function (err) { console.log('Untar Error'); } ) }; reader.readAsArrayBuffer(file.files[0]); return; } function upload(formData) { var action = form.getAttribute('action'); reqUpload.open('POST', action, true); reqUpload.onreadystatechange = uploadState; document.body.style.cursor = "wait"; var ld = document.getElementById("load"); ld.classList.add("loader"); reqUpload.send(formData); document.getElementById('progress').style.display = "block"; progTimer = setInterval(ping, 10000); uploadStarted = true; return; }