Gallerie erstellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gallerie erstellen

    hallo,

    ich habe vor demnächst Gallerien für user auf meiner Homepage zu erstellen und weil ich das noch nie gemacht habe, wollte ich mal Ideen sammeln und ein paar Fragen los werden.

    Was wäre zum Beispiel eine gute Verzeichnisstruktur?
    Alle Bilder in einen Ordner packen und die Verweise auf die einzelnen Bilder, in die sql Tabellen speichern?

    Oder für jeden user einen eigenen Ordner erstellen?

    Thumbnails dynamisch erzeugen, oder schon beim hochladen der Bilder erstellen und speichern?

    vielleicht hat der ein oder andere schon Erfahrung damit und kann mir einige Tips geben

    mfg
    iceman90

  • #2
    Re: Gallerie erstellen

    Original geschrieben von iceman90
    Was wäre zum Beispiel eine gute Verzeichnisstruktur?
    Alle Bilder in einen Ordner packen und die Verweise auf die einzelnen Bilder, in die sql Tabellen speichern?
    wie dir beliebt ... wobei ich es nicht vom User abhängig machen würde. Ich würde die Bilder per id speichern, die Extension im Datensatz speichern und das Verzeichnis aufbauen allá
    PHP-Code:
    /pics/<?php
      $hash 
    md5($id);
      echo 
    substr($hash01) . '/' substr($hash02);
      
    ?>/<?=$id?>.<?=$ext?>
    das dürfte für jede mittlere Gallery reichen (mit dem Hash-Verzeichnis, umgeht man vorläufig die Grenze der Files pro Ordner)
    obiges Code-Fitzelchen würde dann etwas wie
    /pics/e/ed/2.jpeg
    ergeben (der Hash ist zufällig gewählt, den konnte ich im Kopf gerade nicht ausrechnen)

    Thumbnails dynamisch erzeugen, oder schon beim hochladen der Bilder erstellen und speichern?
    auf jeden Fall zwischenspeichern! Dynamisches thumben tötet jeden Serer...

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      vielen Dank erstmal.

      Die Idee mit dem Hash gefällt mir sehr gut.
      Leider ist mir noch nicht ganz klar wie das im Ganzen funktioniert.

      $id ist in dem Fall die id jedes einzelnen Bildes?

      Welche Tabellen bzw. Attribute lege ich dann am besten an?

      Kommentar


      • #4
        Original geschrieben von iceman90
        $id ist in dem Fall die id jedes einzelnen Bildes?
        ja
        Welche Tabellen bzw. Attribute lege ich dann am besten an?
        das was du brauchst, id, size_x, size_y ist auch immer hilfreich, vielleicht ein Titel, Datum des Uploads, Beschreibung ... denk dir was aus

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Original geschrieben von ghostgambler

          das was du brauchst, id, size_x, size_y ist auch immer hilfreich, vielleicht ein Titel, Datum des Uploads, Beschreibung ... denk dir was aus
          ich meinte eher den Zusammenhang der Tabellen.
          Die Tabelle mit den Bildern hat dann einen Fremdschüssel des users von dem die Bilder sind?

          Und wie sieht es mit den Verzeichnissen aus? Wird beim uploaden erst geprüft ob der Ordner vorhanden ist, falls nicht dann wird einer erstellt, falls ja dann wird das Bild dahin verschoben?

          So das waren mal meine wichtigsten Fragen, danach werd ich mich an die Arbeit machen und es ausprobieren.

          Kommentar


          • #6
            Original geschrieben von iceman90
            ich meinte eher den Zusammenhang der Tabellen.
            Die Tabelle mit den Bildern hat dann einen Fremdschüssel des users von dem die Bilder sind?
            zum Bleistift

            Und wie sieht es mit den Verzeichnissen aus? Wird beim uploaden erst geprüft ob der Ordner vorhanden ist, falls nicht dann wird einer erstellt, falls ja dann wird das Bild dahin verschoben?
            ja, Upload, wenn Dir da, verschieben, wenn nicht vorher noch kreieren, fertig

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Hi nochmal,

              also hab jetzt ne Gallerie erstellt!! Ist wirklich ne feine Sache und funktioniert super.

              Bleiben nur noch paar Kleinigkeiten.

              Man fügt ja das Bild in die Datenbank ein ohne die Id zu wissen? Jedenfalls mache ich das so!

              Die id des Bilder ist bei mir als Primärschlüssel und auto_increment. D.h ich füge immer den Wert null für id ein und die Datenbank setzt dann den richtigen wert ein. Danach hole ich die id des gerade eingetragen Bildes mit Hilfe von md5_file wieder aus der Datenbank und Berechne den Pfad für das Bild.


              Und jetzt meine Frage. Kann man das irgendwie eleganter lösen?


              Dann noch eine wichtige Sache. Das Script hat sehr viele potentielle Fehlerquellen und ich habe auf meinem Server nur PHP4, d.h kein Exception Handling.

              Wie löse ich das Problem am besten? Oder wie hat man es gelöst, als es noch kein PHP5 gab?
              (brauch nur paar Stichworte, den Rest kann mir dann Google erklären)

              Manche Schritte müssen ja rückgängig gemacht werden. Wenn man z.B die Daten des Bildes in die Datenbank einträgt, aber danach ein Fehler beim ImageJPEG oder copy auftritt. Es reicht ja nicht einfach den Fehler zu unterdrücken oder einfach nur eine Fehlermeldung an zu zeigen.

              mfg

              iceman90

              Kommentar


              • #8
                Original geschrieben von iceman90
                Die id des Bilder ist bei mir als Primärschlüssel und auto_increment. D.h ich füge immer den Wert null für id ein und die Datenbank setzt dann den richtigen wert ein. Danach hole ich die id des gerade eingetragen Bildes mit Hilfe von md5_file wieder aus der Datenbank und Berechne den Pfad für das Bild.
                ich dachte eigentlich mehr an md5($id) und nicht gleich das ganze File hashen ... denn das ist ziemlich aufwendig

                Dann noch eine wichtige Sache. Das Script hat sehr viele potentielle Fehlerquellen und ich habe auf meinem Server nur PHP4, d.h kein Exception Handling.
                so wie man es immer gemacht hat
                if (false) { echo 'Fehler'; die(); }
                oder oder oder ... such doch einfach ein paar php-Skripte bei google raus, der meiste Müll ist doch eh noch php4 oder sogar noch php5....

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  Original geschrieben von ghostgambler
                  ich dachte eigentlich mehr an md5($id) und nicht gleich das ganze File hashen ... denn das ist ziemlich aufwendig

                  Ich meinte etwas ganz anderes. Vielleicht hab ich es auch schlecht erklärt.
                  Ich versuchs nochmal:

                  Also den Pfad berechne ich über md5($id), substr(....
                  Wie in Deinem Beispiel. Das ist auch nicht mein Problem.

                  Mir ist nur nicht klar wie ich an die $id komme.
                  Beim Einfügen habe ich sie ja nicht. da mache ich einfach

                  INSERT INTO image VALUES (null,$dateiHash,....)

                  und danach hol ich die id des eingefügten Bildes, um den Pfad zu erstellen.

                  SELECT Id FROM image WHERE hash = $dateiHash

                  erst dann hab ich ja die id um den pfad zu erstellen.

                  --------------------

                  Wie könnte man es besser machen? Oder wie macht man das richtig?

                  Naja wie du siehst bin ich PHP Anfänger, deswegen die blöden Fragen.

                  Kommentar

                  Lädt...
                  X