Bild aus zip lesen und anzeigen, ohne entpacken

Hallo gianfranco0104

Eine Möglichkeit wäre:
http://stuk.github.io/jszip/

Zip einlesen, datei als Uint8Array auslesen, in einen Blob verwandeln, über createObjectURL den blob in eine URL umwandeln und einem img als source geben.

Viele Grüsse
Cromon
 
@jeipack - ja habe ich schon. die Dateien werden ja dennoch entpackt. Und bei mir ist es lokal auf der Platte. Sowas habe ich schon, einpacken, auspacken - alles kein Thema. Nur will ich mir beim auflisten der einzelnen Files das entpacken, Bild als Thumpnail zwischenspeichern und dann alles wieder löschen sparen.
 
hmm, sieht gut aus. mit
Javascript:
JSZipUtils.getBinaryContent('path/to/content.zip', function(err, data) {
  if(err) {
    throw err; // or handle err
  }

  var zip = new JSZip(data);
});
kann ich Local lesen. Muss ich die Tage mal etwas weiter durchlesen.
Danke für den Hinweis!
 
Stimmt schon! ich habe mir das "JSZip" schon vor einiger Zeit mal angesehen, bevor das mit dem Bild die Rede war. Habe es aber dann doch anders gemacht. Habe mich nicht tiefer eingelesen. Habe ich ein Anderes Verfahren genutzt:
Javascript:
function ZipFile()
{
        if ( arguments.length == 0 ) {
                return;
        }
        this.open.apply(this, arguments);
};

(function()
{
var fso = new ActiveXObject('Scripting.FileSystemObject');
var shellApp = new ActiveXObject("Shell.Application");

ZipFile.prototype.open = function(name, create, overwrite)
{
        if ( create ) {
                var zipFile = fso.CreateTextFile(name, !! overwrite, 0);
                zipFile.Write('PK\05\06' + new Array(19).join('\0')); // 18 zeros
                zipFile.Close();
        }
        this.name = fso.GetFile(name).Path;
        this.file = shellApp.NameSpace(this.name);
};

ZipFile.prototype.flush = function(timeout)
{
        timeout = Math.max(Number(timeout) || 0, 100);
        WScript.Sleep(timeout);
};
ZipFile.prototype.forEach = function(func)
{
        if ( typeof func != 'function' ) {
                throw new TypeError();
        }

        var arcfile = this.file;
        var items = arcfile.Items();

        for (var e = new Enumerator(items); ! e.atEnd(); e.moveNext()) {
                var folderItem = e.item();
                func(folderItem, arcfile);
        }
};
ZipFile.prototype.forInput = function(input, func)
{
        if ( typeof func != 'function' ) {
                throw new TypeError();
        }

        var arcfile = this.file;

        if ( typeof input == 'string' ) {
                input = [input];
        }

        for (var i = 0; i < input.length; i++) {
                var p = input[i];
                if ( ! p ) {
                        continue;
                }

                var folderItem = null;
                if ( fso.FileExists(p) ) {
                        folderItem = fso.GetFile(p);
                } else if ( fso.FolderExists(p) ) {
                        folderItem = fso.GetFolder(p);
                }
                func(folderItem, arcfile);
        }
};
})();

// Zippen
var projFileName = projektname;
var zipfile = new ZipFile();
zipfile.open("C:\\cnc\\USER\\" + projFileName + ".zip", true, true); //TempZip erstellen in:
zipfile.forInput(
[
"C:\\cnc\\USER\\projdata"
// hier können weitere Folder rein
],
  function(folderItem, arcfile){
  arcfile.CopyHere(folderItem.Path, 0);
setTimeout(function(){
// Projekt Suffix von .zip in .cm5 umbenennen
var renFile = new ActiveXObject("Scripting.FileSystemObject");
var shell = new ActiveXObject("WScript.Shell");
pathToMyDocuments = shell.SpecialFolders('MyDocuments');
// Erzeuge .CM5-File und in "BENUTZERNAME\Dokumente\CM5Projects" verschieben
//alert(corrContentPath)
renFile.CopyFile("C:\\cnc\\USER\\" + projFileName + ".zip", corrContentPath, 1);  // 1=overwrite
renFile.DeleteFile("C:\\cnc\\USER\\" + projFileName + ".zip", true);  //Nach verschieben tempZip löschen
renFile = null;

},4000);

  });
}

war für mich ausreichend.

Durch deinen Hinweis habe ich mich nun weiter hineingelesen und ja - da gibt es die Lösung für mich.
Danke nochmals :)

Aber mit deinem Beispiel geht was nicht richtig. Bild in meiner ZIP ist Image.png aber es wird nicht angezeigt.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück