2011-06-21 27 views
11

Sorun,HTML5 dosyası API: Güvenlik Hatası Bir dosya okunurken

Ben HTML5 Dosya API ile olan üçüncü problemi yorum okumak çözüldü: Hala Mac OS X Snow Leopard Chrome'u 12 kullanıp ben Hala HTML5 Dosya API'sı ile dosyaları okumaya çalışıyorum, ancak FileHandler.error() bir "SECURITY_ERR" olayı nedeniyle çağrıldı. Okumayı denediğim dosya, masaüstümden düzenli bir .txt dosyasıdır, ancak normal uygulamalarla açabilmem için başka dosyalarla çalışmaz. http://cl.ly/1x1o2F0l2m3L1T2c0H0i

+0

Sorun çözüldü! Komut dosyasını sadece mükemmel bir web alanına yükledim. –

+3

Bir dosyayı 'file: //' üzerinden test ediyorsanız, Chrome'u şu bayraklarla çalıştırabilirsiniz: '- dosyadan-dosyadan-dosyadan-dosyadan-dosyadan-erişime. Bu sadece test amaçlı kullanılmalıdır. Bu yazı – ebidel

+0

? Özel bir bayrak ile onların krom tarayıcısını başlatmak için kullanıcıların isteyemezsiniz: S –

cevap

12

Eğer file:// bir uygulamayı test ediyorsanız, aşağıdaki bayraklarıyla Chrome'u çalıştırabilirsiniz:: --allow-file-access-from-files--allow-file-access

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); 
} 

kod aşağıdaki konsol çıktısını üretir. Bu sadece test amaçlı kullanılmalıdır.

+0

Yani temelde bir web sitesinde bir dosya okuyucu kullanmak yolu yoktur :) kapatılabilir böylece cevap olarak bu yorum eklemek gerekir @ebidel – sebpiq

+0

Hayır 'dosya: herhangi bir sunucu çalışan olmadan yerel web sitesi test ederken //' protokol sadece kullanılacaktır kez dağıtılan dosya 'üzerinden transfer edilecek http: // 'protokolü –

+0

Bir tablet bir HTML5 uygulamasını yürütürse, bir dosya kullanıyor olacak: // veya http: // protokolü? Ve eğer ikincisiyse, bu hatayı da yapacak mı? Dosya/http ipucu için – Extrakun

İlgili konular