2011-12-20 3 views
16

En HTML5 sabemos que podemos leer archivos usando una API predefinida. A partir de ahora he intentadoCómo leer un archivo en un evento de pegar en HTML5

<input type="file"> y el método File Drop. Han funcionado bien para mí.

Pero quiero saber la posibilidad de pegar un archivo en un div y capturar el archivo en pegar. Por ejemplo

$('#dummyDIV').bind('paste',function() 
{ 
     // Like var file = files[0] 
}); 

Gracias

+4

Bueno, en teoría, el portapapeles también puede contener archivos, por lo que debería poder acceder a ellos de la misma manera que lo hace en el método de colocación. intente console.log() el objeto de evento y navegue a través de él para ver si la propiedad existe y la ruta que debe seguir para llegar a ella. –

+0

En caso de ser posible, este sitio lee los archivos pegados con el mismo método que se utiliza en drop: http://base64img.com/ - sin embargo, eso se hace pegando una dirección en línea en un cuadro de texto, y no estoy seguro si funciona al pegar un archivo en la zona de caída? – adeneo

Respuesta

16

Sólo se puede leer el nombre de archivo del archivo de pegado.

http://jsfiddle.net/vdNFR/

$('body').bind('paste', function(a, b, c) { 
    console.log(a.originalEvent.clipboardData); 
    console.log(a.originalEvent.clipboardData.getData('File')); 
    console.log(a.originalEvent.clipboardData.getData('Text')); 
    if (a.originalEvent.clipboardData.files[0]) console.log(a.originalEvent.clipboardData.files[0].getAsFile()); 
    if (a.originalEvent.clipboardData.items[0]) console.log(a.originalEvent.clipboardData.items[0].getAsFile()); 
    console.log(a, b, c); 
}); 

sería un agujero de seguridad si cualquier navegador sería permitir que esta situación ocurra.

+0

+1 Ninguna posibilidad de que ningún navegador le permita hacer eso – bardiir

+6

Solo curiosidad por saber por qué sería un agujero de seguridad. ¿Puedes explicar? – Sundeep

+0

Los accidentes causan daños. Convenido. Y uno tiene que pagar por los errores cometidos. Digamos que no soy un usuario tonto para jugar con un archivo KeePass, ¿qué otros problemas de seguridad puede causar? – Sundeep

Cuestiones relacionadas