Tommyknocker1973: HTML-Bildobjekt mit lokal gespeicherter Bilddatei befüllen

Hallo zusammen,

ich habe hier ein Problem mit JavaScript-Code in meiner Webanwendung. Sie soll laufen auf Android und möglichst mit Opera Mobile.

Es geht darum, wie ich eine lokal vorhandene Bilddatei per JavaScript auslese und direkt im HTML-Dokument anzeige. Das Bildmaterial wird von mir dann sozusagen weiterverwendet (und zwar verschickt via Ajax), aber das ist erst einmal nebensächlich.

Die Bilddatei heißt 'show-picture', ein ganz normales img-Objekt.

So sieht mein JS-Code momentan aus, er stammt aus der offiziellen Firefox Doku und laut dieser soll er auch mit Opera Mobile funktionieren:

  
  
function funct_takePicture(files)  
{  
   showPicture = document.getElementById('show-picture');  
   //  
   var file;  
   //  
   if (files && files.length > 0)  
   {  
      file = files[0];  
  
      try  
      {  
  
        // Firefox  
  
        // Get window.URL object  
	var URL = window.URL || window.webkitURL;  
  
	// Create ObjectURL  
	var imgURL = URL.createObjectURL(file);  
  
	// Set img src to ObjectURL  
	showPicture.src = imgURL;  
  
	// Revoke ObjectURL  
	URL.revokeObjectURL(imgURL);  
     }  
     catch(e)  
     {  
       try  
       {  
          // Opera  
  
          var fileReader = new FileReader();  
          fileReader.onload = function (event)  
          {  
             showPicture.src = event.target.result;  
          };  
  
         fileReader.readAsDataURL(file);  
      }  
      catch(e)  
      {  
      }  
   }  
}  

Nun zu meinem Problem:

Opera Mobile fängt auch fleißig an, das HTML-Bildobjekt mit dem lokalen Bild zu befüllen, aber dann nach einer Weile - irgendwo mittendrin im Laden - bricht Opera ab und das wars dann, er lädt so ca. das obere Drittel des Bildes und dann hört er auf.

Ganz falsch kann mein Code nicht sein (bzw. er stammt ja von Mozilla), aber wieso bricht der Browser ab?

Liegt es an der Bilddatei-Größe? Das sind Fotos, die auf dem Android-Handy geschossen wurden und auf der Speicherkarte liegen.

Der Code ist mit folgenden Browsern erfolgreich getestet:

Firefox PC
Firefox Mobile
Opera PC
Chrome PC

Laut der Mozilla-Doku soll der Code auch mit Opera Mobile funktionieren, aber ich sage ja, es rumpelt noch ein bischen. Wenn ich nur wüsste, wieso der Browser mittendrin aufhört, das Bild fertig zu laden ...

Habt Ihr vielleicht Tipps/Erfahrungen?

Gruß

Tommy

  1. Laut der Mozilla-Doku soll der Code auch mit Opera Mobile funktionieren, aber ich sage ja, es rumpelt noch ein bischen. Wenn ich nur wüsste, wieso der Browser mittendrin aufhört, das Bild fertig zu laden ...

    Habt Ihr vielleicht Tipps/Erfahrungen?

    Einen Verdacht: Der Browser- Speicher ist zuende. Da die verschiedenen Browser unterschiedlich groß sind, kann dies bei einem Browser passieren, bei den anderen nicht.

    Ein Bild wird heruntergeladen, auch von localhost, und benötigt somit temporären Speicher.

    Mach mal die HTML- Datei kleiner oder größer und teste, ob mehr oder weniger vom Bild angezeigt wird.

    Linuchs

  2. Etwas davon sollte Dir helfen:

    http://www.html5rocks.com/de/tutorials/file/dndfiles/

    Allerdings fürchte ich, dass Dein Problem eines von Opera ist.