tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
414
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von the snake II
    the snake II the snake II ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Ort
    Krefeld
    Beiträge
    132
    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::open" zu öffnen. Nach dem Bearbeiten wird die Datei wieder gelöscht.

    Das sieht momentan so aus:

    PHP-Code:
    $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é
     

  2. #2
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Zitat Zitat von the snake II Beitrag anzeigen
    Diese Vorgehensweise ist natürlich relativ zeitaufwändig, wenn man bedenkt, dass dies zur Laufzeit immer wieder ausgeführt wird.
    Wieso speicherst du die Bilder nicht dauerhaft auf deinem Server ab?
    Um Änderungen zu verfolgen, bildest du einfach den MD5-Hash des ZIP-Ordners und des Datenbankeintrags.
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  3. #3
    Avatar von the snake II
    the snake II the snake II ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Ort
    Krefeld
    Beiträge
    132
    Zitat Zitat von ComFreek Beitrag anzeigen
    Wieso speicherst du die Bilder nicht dauerhaft auf deinem Server ab?
    Um Änderungen zu verfolgen, bildest du einfach den MD5-Hash des ZIP-Ordners und des Datenbankeintrags.
    Ich hatte zwar schon darüber nachgedacht, die Seite statisch aufzubauen, hatte das aber wieder verworfen, weil ich sicherstellen wollte, dass Änderungen an der Datenbank die Seite direkt aktualisieren.
    Dabei habe ich aber nicht an die Lösung mit dem MD5-Hash gedacht. So gehts natürlich.

    Vielen Dank!
     

Ähnliche Themen

  1. Datei ohne Stream öffnen
    Von colblake im Forum .NET Café
    Antworten: 3
    Letzter Beitrag: 24.08.10, 15:13
  2. Antworten: 2
    Letzter Beitrag: 11.06.08, 07:42
  3. Antworten: 4
    Letzter Beitrag: 19.09.06, 10:09
  4. [VB.NET] String in Stream ohne Datei
    Von calvin65 im Forum .NET Café
    Antworten: 4
    Letzter Beitrag: 08.09.06, 10:29
  5. Antworten: 3
    Letzter Beitrag: 13.05.04, 15:07