the snake II
Erfahrenes Mitglied
Hallo,
ich arbeite an einer Internetseite, die Produkte darstellt, welche in einer Datenbank gespeichert sind. Es handelt sich um eine FileMaker Datenbank, die auch Dateien speichern kann.
Weil zu einem Produkt mehrere Bilder gehören, werden sie in einer ZIP Datei gespeichert.
Um diese Auszulesen, hole ich mir zunächst den Inhalt des entsprechenden Feldes, speichere den Inhalt in eine *.zip-Datei, um sie mit der Methode "ZipArchive:
pen" zu öffnen. Nach dem Bearbeiten wird die Datei wieder gelöscht.
Das sieht momentan so aus:
Diese Vorgehensweise ist natürlich relativ zeitaufwändig, wenn man bedenkt, dass dies zur Laufzeit immer wieder ausgeführt wird.
Ich finde einfach keine Lösung, auf das ZIP-Archiv zuzugreifen, ohne es vorher in eine Datei zwischen zu speichern.
Ist es irgendwie möglich, den Stream, der mir durch "$fm->getContainerData($_GET['url']));" zur Verfügung steht, wie eine Datei zu behandeln?
Viele Grüße,
André
ich arbeite an einer Internetseite, die Produkte darstellt, welche in einer Datenbank gespeichert sind. Es handelt sich um eine FileMaker Datenbank, die auch Dateien speichern kann.
Weil zu einem Produkt mehrere Bilder gehören, werden sie in einer ZIP Datei gespeichert.
Um diese Auszulesen, hole ich mir zunächst den Inhalt des entsprechenden Feldes, speichere den Inhalt in eine *.zip-Datei, um sie mit der Methode "ZipArchive:

Das sieht momentan so aus:
PHP:
$zipname = rand(1,9999).".zip";
while(file_exists($zipname)){
$zipname = rand(1,9999).".zip";
}
/* hier wird der Inhalt des DB-Feldes übergeben.
Er kann so wie er ist, in eine Datei geschrieben werden und man erhält eine gültige ZIP-Datei */
$handle = fopen($zipname,"w+");
fputs($handle,$fm->getContainerData($_GET['url']));
fclose($handle);
$zip = new ZipArchive;
$res = $zip->open($zipname);
//Hier wird mit den Dateien in der ZIP gearbeitet
$zip->close();
unlink($zipname);
Diese Vorgehensweise ist natürlich relativ zeitaufwändig, wenn man bedenkt, dass dies zur Laufzeit immer wieder ausgeführt wird.
Ich finde einfach keine Lösung, auf das ZIP-Archiv zuzugreifen, ohne es vorher in eine Datei zwischen zu speichern.
Ist es irgendwie möglich, den Stream, der mir durch "$fm->getContainerData($_GET['url']));" zur Verfügung steht, wie eine Datei zu behandeln?
Viele Grüße,
André