2009-08-24 24 views
5

¿Es posible leer un archivo desde una ruta en JavaScript y crear un byte [] de ese archivo?JavaScript archivo en byte []

+0

Creo que deberías darnos más pistas sobre qué estás tratando de hacer exactamente. –

Respuesta

5

Existen dos formas de JavaScript: del lado del cliente y del lado del servidor. En JavaScript del lado del cliente no es posible, mientras que en el lado del servidor JavaScript, es posible. Por lo tanto, depende de si está utilizando JavaScript del lado del cliente o del lado del servidor.

Dicho esto, el JavaScript del lado del cliente es mucho más común y si utilizara el JavaScript del lado del servidor, probablemente sabría la respuesta a su pregunta. Así que me voy a quedar en una extremidad y decir que no, no es posible leer desde una ruta en JavaScript y crear un byte [] desde ese archivo.

(Además, no está claro qué quiere decir con un byte []; no es una notación común al usar JavaScript. ¿Está seguro de que no está hablando de Java? Java es completamente diferente de JavaScript: en byte de Java [] es una notación más común)

+1

Creo que solo quería saber si podía cargar los bytes del archivo en una matriz. Javascript no tiene esta notación, pero una matriz de números esencialmente haría lo mismo. ¿Tiene algún enlace sobre el servidor de javascript? No he usado javascript en el lado del servidor y tengo curiosidad sobre dónde se usa. – Zoidberg

+0

Zoidberg, eche un vistazo a http://en.wikipedia.org/wiki/Server-side_JavaScript –

+0

¿cómo se hace esto en javascript en el lado del servidor?Es mucho más común ahora en 2015, pero todas las respuestas sobre este tipo de preguntas en este sitio web son sobre js – CQM

4

No. JavaScript está diseñado a propósito para tener un archivo IO mínimo (cookies de pensamiento) porque permitirle acceder a archivos arbitrarios (locales y remotos) sería un gran riesgo de seguridad.

+1

Para todos los que escriben sobre archivo-i/o y riesgo de seguridad: para el JavaScript originado en la web ejecutado en el archivo del navegador, la E/S es un riesgo de seguridad. No depende del lenguaje de programación, sin embargo. El riesgo, como se indica aquí, es básicamente aplicable a todos los lenguajes de programación. – gimpf

18

Sí, se puede - en Firefox, de todos modos.. Otros navegadores pueden optar por permitirlo en el futuro.

Cree un campo de carga de archivos para que el usuario pueda elegir el archivo y léelo a través de la lista input.files. p.ej. document.getElementById('myuploadfield').files[0].getAsBinary(). Esto coloca cada byte en un solo carácter de una cadena de JavaScript, que es lo más parecido a un byte [] que va a obtener.

Esta es una interfaz bastante especializada y probablemente no es lo correcto; preste atención a las otras respuestas, porque es muy posible que esté tratando de hacer algo de manera inapropiada. Difícil de decir sin contexto.

+1

del lado del cliente upvoted para obtener información relevante y interesante. –

+0

+1 ... lo que Mehmet dijo – rennat

3

Ustedes parecen haber olvidado por completo las plataformas móviles y javascript diseñado para funcionar con banderas sin seguridad configuradas como nunca. Accedo a mis archivos muy bien en mi código de JavaScript, que se ejecuta en mi iPhone. Simplemente no puede acceder al sistema de archivos de los usuarios, solo su propio sistema de archivos, que es básicamente una carpeta aislada del resto del sistema.

Sp su pregunta era perfectamente válida. Además, debería buscar bloques Javascript (objetos grandes binarios) y matrices tipadas. Puede asignar matrices de bytes, palabras y palabras largas "normales" en JS, pero las personas rara vez las usan.