¿Cómo cargar un archivo sin formulario usando JavaScript?

Hay varios enfoques para cargar un archivo sin usar el formulario en JavaScript:

Enfoque 1: este enfoque es usar FormData que puede cargar un archivo sin usar ningún tipo de formulario. Lo especial de esto es que los métodos de red, como fetch, pueden aceptar un objeto FormData como cuerpo. Está codificado y enviado con Content-Type — multipart/form-data.

Fragmento de JavaScript:

Javascript

var gfg = new FormData();
 
gfg.append('pictureFile',
        pictureInput.files[0]);
 
// upload.php is the file to be uploaded
$.ajax({
    url: 'upload.php',
    type: 'POST',
    processData: false,
    contentType: false,
    dataType: 'json',
    data: gfg
});

Enfoque 2: este enfoque consiste en utilizar XMLHTTPRequest que puede cargar directamente el archivo como contenido dentro del cuerpo de la solicitud POST.

Fragmento de JavaScript:

Javascript

// JavaScript Code
var form = document.getElementById('the-form');
 
form.onsubmit = function () {
    var formData = new FormData(form);
    formData.append('file', file);
    var xhr = new XMLHttpRequest();
 
    // Add any event handlers here...
    xhr.open('POST', form.getAttribute('action'), true);
    xhr.send(formData);
 
    // To avoid actual submission of the form
    return false;
}

Enfoque 3: este enfoque es usar el complemento simpleUpload .

Fragmento de código HTML:

HTML

<!DOCTYPE html>
<html>
 
<body>
    <h2>Welcome To GFG</h2>
 
    <input type="file" name="arquivo"
        id="simpleUpload" multiple>
     
        <button type="button" id="upload">
            Upload
        </button>
</body>
 
</html>

Fragmento de JavaScript:

Javascript

$('#simpleUpload').simpleUpload({
 
    // upload.php is the file
    // to be uploaded
    url: 'upload.php',
    trigger: '#upload',
    success: function (data) {
        alert('Successfully Uploaded');
    }
});

Producción:

Publicación traducida automáticamente

Artículo escrito por sankalpsharma424 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *