2011-06-21 11 views
11

Problema resuelto, leer comentariosHTML5 archivo de API: Error de seguridad durante la lectura de un archivo

El tercer problema que tengo con la API de HTML5 del archivo: todavía uso Chrome 12 en Mac OS X Snow Leopard y yo' Todavía estoy intentando leer archivos con la API de archivos HTML5, pero se llama a FileHandler.error() porque se produce un "SECURITY_ERR". El archivo que trato de leer es un archivo .txt regular de mi escritorio, pero no funciona con otros archivos aunque puedo abrirlos con aplicaciones regulares.

function FileHandler(files, action) { 
    console.log('FileHandler called.'); 

    this.files = files; 
    this.reader = new FileReader(); 
    this.action = action; 

    this.handle = function() { 
     console.log('FileHandler.handle called.'); 

     for (var i = 0; i < this.files.length; i++) { 
      this.reader.readAsDataURL(files[i]); 
     } 
    } 

    this.upload = function() { 
     console.log('FileHandler.upload called.'); 
     console.log(this.reader); 

     data = { 
      content: this.reader.result 
     } 

     console.log(data); 
    } 

    this.error = function() { 
     console.log('An error occurred while reading the file.'); 
     console.log(this.reader.error); 
    } 

    this.reader.onload = this.upload.bind(this); 
    this.reader.onerror = this.error.bind(this); 
} 

El código genera la siguiente salida de la consola: http://cl.ly/1x1o2F0l2m3L1T2c0H0i

+0

¡Problema resuelto! Acabo de subir el script a un espacio web que funciona perfecto. –

+3

Si está probando una aplicación desde 'file: //', puede ejecutar Chrome con los siguientes indicadores: '--allow-file-access-from-files --allow-file-access'. Esto solo debe usarse con fines de prueba. – ebidel

+0

@ebidel Deberías agregar ese comentario como respuesta para que esta publicación se cierre :) –

Respuesta

12

Si está probando una aplicación de file://, puede ejecutar Chrome con las siguientes banderas: --allow-file-access-from-files--allow-file-access. Esto solo debe usarse con fines de prueba.

+0

¿Así que no hay forma de usar un lector de archivos en un sitio web básicamente? No puede exigir a los usuarios que inicien su navegador Chrome con un indicador especial: S – sebpiq

+0

No se utilizará el protocolo 'file: //' cuando se prueba el sitio web localmente sin que se ejecute ningún servidor; una vez desplegado, el archivo se transferirá a ' http: // 'protocolo –

+0

Si una tableta ejecuta una aplicación HTML5, ¿usará un protocolo file: // o http: //? Y si es el último, ¿se encontrará con este error también? – Extrakun

Cuestiones relacionadas