2012-01-03 8 views
5

Estoy usando jQuery si eso es algún beneficio; y me gustaría tener:Cómo obtener los contenidos de un * archivo * * seleccionado por el usuario * local * en javascript sin ninguna publicación, obtención, envío, etc.

  1. El usuario selecciona un archivo en el sistema de archivos local de

  2. mi Javascript obtiene el contenido de dicho archivo sin tener que ir "a través del alambre".

  3. estoy comprobando el tipo de navegador y estoy preparado para utilizar completamente diferente código para cada navegador. IE y FF son los dos para los que estoy escribiendo actualmente.

  4. No estoy usando php, simplemente javascript directamente en un formulario.

  5. No quiero ninguna obtiene, publica, envía, ajax, o cualquier otra actividad de la red hasta que el contenido del archivo haya sido adquirido, validado y manipulado (todo lo que hará mi script; esta pregunta es solo para obtener las agallas del archivo).

  6. No necesito necesariamente obtener el camino. Yo no particularmente quiero para obtener la ruta. La noción generalmente aceptada de "asegurar" que el usuario elija el archivo y mi script solo obtiene el contenido. Está bien, pero si obtengo el camino no me quejaré.

He buscado esto mucho y no he encontrado ninguna solución que simplemente funcione.


He mirado en Mozilla XPCOM, pero el selector de archivos nsIFilePicker requiere una escalada de privilegios, que sólo que no quiero tratar.


He intentado usar un habitual

<input type="file" onclick="fileCheck(this); return false" . . . /> 

with 

function fileCheck() 
{ 
    var path = obj.files[0].mozFullPath; 
} 

Pero a pesar de que se puede ver en mozFullPath Firebug, no se presentó a Javascript (al parecer por razones de seguridad).

¿Alguna idea?

+1

Simplemente no puede – Stefan

+0

Me pareció interesante que pueda obtener una vista previa/datos simplemente seleccionando una png. No estoy seguro si esto es de relevancia, pero es interesante: http://blueimp.github.com/jQuery-File-Upload/ – NibblyPig

Respuesta

3

No se puede, por razones de seguridad evidentemente obvias.

+2

Ojalá pudiera hacer clic en +1 más de una vez a veces. –

+1

No diría que fueran cegadoramente obvios. No es menos seguro que un usuario que selecciona un archivo y tiene un botón peligroso de "carga" que envía los contenidos al servidor. La parte de seguridad es eludida por el usuario que elige activamente el archivo. Están diciendo que es, hazlo como quieras. – NibblyPig

+0

no, son cegadoramente obvios. ¿Qué sucede si selecciono mi declaración de impuestos por error primero? Seguramente no quiero enviar eso. Si pudieras leer cualquier archivo simplemente SELECCIONADO, eso generaría muchos problemas de seguridad. La acción de tener que enviar el formulario realmente ayuda a proporcionar una prueba rápida. Dicho eso, si tienes un usuario que simplemente no sabe mejor ... – tkone

6
+0

Agradable respuesta. Leí sobre esto antes, pero las páginas web que vi dijeron que el archivo API en HTML 5 aún no se había implementado en FF. Quizás estaban equivocados; Lo intentaré. – kovacsbv

Cuestiones relacionadas