2012-07-03 20 views
7

Quiero permitir a los usuarios arrastrar y soltar (o seleccionar) un archivo desde su computadora y cargarlo en un cuadro de texto con JavaScript.HTML5 Arrastrar y colocar: Cargar archivo de texto en un cuadro de texto con JavaScript

¿Es posible cargar un archivo local con JavaScript en un cuadro de texto? ¿Si es así, entonces cómo?

+0

No es esto posible sin subir el archivo al servidor quizá con 'FileReader()' –

+0

¿Quieres decir algo como [esto] (http: // html5demos.com/file-api) retocado para archivos de texto? –

+0

Sí para archivos TEXT. –

Respuesta

16

creo que todo lo que quieras para HTML5 se incluye en remy/html5demos en github.

Como ejemplo, modifiqué http://html5demos.com/file-api para aceptar archivos de texto y mostrarlos en el navegador.

Ver el jsfiddle.

Editar
guión pertinente:

// modified from http://html5demos.com/file-api 
var holder = document.getElementById('holder'), 
    state = document.getElementById('status'); 

if (typeof window.FileReader === 'undefined') { 
    state.className = 'fail'; 
} else { 
    state.className = 'success'; 
    state.innerHTML = 'File API & FileReader available'; 
} 

holder.ondragover = function() { 
    this.className = 'hover'; 
    return false; 
}; 
holder.ondragend = function() { 
    this.className = ''; 
    return false; 
}; 
holder.ondrop = function(e) { 
    this.className = ''; 
    e.preventDefault(); 

    var file = e.dataTransfer.files[0], 
     reader = new FileReader(); 
    reader.onload = function(event) { 
     console.log(event.target); 
     holder.innerText = event.target.result; 
    }; 
    console.log(file); 
    reader.readAsText(file); 

    return false; 
};​ 
+0

El evento 'ondragend' no funcionaba en Chrome 56, en mi mac. Tuve que cambiarlo a 'onmouseleave'. – Jersh

Cuestiones relacionadas