javascript - readasdataurl - ¿HTML 4 equivalente al FileReader de HTML 5?
read file javascript (3)
Tengo una página web que debe poder cargar archivos en el DOM desde la máquina local en la que se ejecuta el navegador. Descubrí que esto es muy fácil de hacer con la API de archivos HTML 5.
Solo puedo hacer:
var reader = new FileReader();
reader.onload = function (fileContents) { ... load contents to a div ... }
reader.readAsText(f) //where f is an HTML5 File object
Curiosamente, necesito que esto funcione en IE7, y también algunas versiones anteriores de Firefox que no son compatibles con la API. ¿Hay alguna manera fácil de cargar un archivo local en el DOM en los navegadores más antiguos?
¡Muchas gracias!
Además de las otras respuestas aquí, parece que no hay una forma consistente de hacer este lado del cliente (que no sea Flash) para navegadores más antiguos.
Para IE7 / 8 sin embargo, he logrado hackear algo usando ActiveX.
var filePath = f:/oo.txt;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var textStream = fso.OpenTextFile(filePath);
var fileData = file.ReadAll();
Luego puedo pasar esto a la misma función que reader.onload en la pregunta anterior. Obviamente, esta es una solución mala, hacky, y puede ser bloqueada por algunas políticas de seguridad, ¡al menos funciona para IE7!
No, no puedes hacer eso en navegadores más antiguos. FileReader (cualquier acceso al sistema de archivos realmente) es una nueva característica HTML5 que no es compatible con navegadores más antiguos.
Su mejor opción en un navegador más antiguo es:
- Una aplicación Silverlight, Flash o Java (o similar) que se ejecuta en el lado del cliente y tiene acceso local al sistema de archivos.
- Hacer que el usuario cargue archivos usando el elemento
<input type="file">
, y haga su procesamiento en el lado del servidor.
Parece que puedes hacer eso a través de Flash. Alternativa de Flash para API FileReader HTML 5