Ankündigung

Einklappen
Keine Ankündigung bisher.

Bilder upload mit Schutz

Einklappen

Neue Werbung 2019

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

  • Bilder upload mit Schutz

    Hallo,
    ich bin neu hier und will mich kurz vorstellen. Ich heiße Christian, bin 43 und Hobbyprogrammierer. Meine Ursprünge des Programmierens liegen im VB. HTML, CSS, Javascript sowie php hab ich mir alles selbst angeeignet. Ich strotze also vor lauter gefährlichem Halbwissen und würde mich in manchen Bereichen als Fortgeschritten, in vielen Bereichen aber auch als Anfänger sehen. Soviel zu meiner Person.
    Nun zu meiner ersten Frage: Ich habe gerade einen Loginbereich anprogrammiert. Nun soll es hier auch die Möglichkeit geben, Fotos hochzuladen. Das wäre jetzt so nicht die Schwierigkeit.
    Ich bin eher am überlegen, wie ich es anstelle, dass die Fotos nicht direkt über die url aufrufbar sind.
    Da würden mir 3 Möglichkeiten einfallen:
    1. Foto direkt in die DB speichern
    2. Foto in einen .htaccess Ordner, da wird es aber sicher Schwierigkeiten mit dem Zugriff durch php beziehungsweise wahrscheinlich auch mit dem upload geben.
    Und eine dritte Möglichkeit würde es auch noch geben, die mir eventuell am besten gefallen würde.
    Ich betreibe bei all-inkl einen eigenen Server. Meine Homepage liegt dort in einem Ordner. Nun ist die Frage, ob ich nicht außerhalb dieses Ordners einen Bilderordner machen könnte?
    Da wären die Fotos dann auf jeden Fall nicht über die url aufrufbar. Allerdings habe ich dass noch nie probiert und weiß auch nicht, wie die Pfadangaben beim upload beziehungsweise beim Anzeigen des Bildes aussehen müssten.
    Vielleicht kann mir jemand sagen wie das funktioniert.
    Evenutell bin ich mit meinen 3 Möglichkeiten auch komplett auf dem Holzweg und es gibt eine bessere Möglichkeit.
    LG
    Christian

  • #2
    Foto kannste in einen unbekannten ordner lassen + htaccess und ggf ein ordner außerhalb des www-Bereiches. Dann ist es supersicher xD
    Zugriff kannste z.b. mit Passwort organisieren und dann die Daten durch ein PHP-Skript schleusen. z.B. mit File-Operationen und Ausgabe + header()-Anweisungen. Detail müsst ich dann auch selber erstmal Zuammensuchen.

    Aublauf:
    -> Passwort eingeben oder was auch immer.
    -> Link erzeugen z.B. sowas hier download.php?datei_id=ldksjgljkdsgkjlsjlghldskhglk dshgkdsjh
    -> ldksjgljkdsgkjlsjlghldskhglkdshgkdsjh mit lokalen Wert vergelichen
    -> wenn gültig, dann Datei aus Verzeichnis laden und direkt ausgeben ( echo oder was auch immer ). Als Header noch Dateityp definieren.
    Fertig!

    Die Details solltest Du dann googlen oder ggf. nochmal was nachharken.
    bitcoin.de <- Meine Freelancerwährung

    Kommentar


    • #3
      Zitat von majak01 Beitrag anzeigen
      Hallo,
      ich bin neu hier
      Willkommen

      Zitat von majak01 Beitrag anzeigen
      und würde mich in manchen Bereichen als Fortgeschritten, in vielen Bereichen aber auch als Anfänger sehen.
      und nix dazwischen?

      Zitat von majak01 Beitrag anzeigen
      Ich bin eher am überlegen, wie ich es anstelle, dass die Fotos nicht direkt über die url aufrufbar sind.
      Sondern…? Du willst das wer die Bilder sehen kann?

      Liefere halt nur die Bilder aus wenn jemand eingelogt ist. Also jedes Bild über Deine PHP Anwendung ausliefern, da kannst Du das prima steuern.

      Zitat von majak01 Beitrag anzeigen
      1. Foto direkt in die DB speichern
      Um Himmelswillen nein! Bilder einfach ausserhalb von Document root ablegen. wenn Du diese Möglichkeit nicht hast (geht eigentlich bei den meisten Hostern) dann die Bilder in ein Verzeichnis legen das per Konfiguration von aussen nicht erreichbar ist.

      Zitat von majak01 Beitrag anzeigen
      2. Foto in einen .htaccess Ordner, da wird es aber sicher Schwierigkeiten mit dem Zugriff durch php beziehungsweise wahrscheinlich auch mit dem upload geben.
      Du setzt das Dateisystem das der Webserver zur Verfügung stellt mit dem lokalen Dateisystem gleich. Das ist falsch! Was interessieren dich mit PHP den irgendwelche Apache-internen Zugriffsrechte?

      Zitat von majak01 Beitrag anzeigen
      Da wären die Fotos dann auf jeden Fall nicht über die url aufrufbar. Allerdings habe ich dass noch nie probiert und weiß auch nicht, wie die Pfadangaben beim upload beziehungsweise beim Anzeigen des Bildes aussehen müssten.
      Das ist doch bzgl. Upload nicht von Bedeutung!

      Und wenn die Dateien ausserhalb document_root liegen dann sind diese halt nicht erreichbar. Deswegen liefert man diese dann mit PHP aus.

      Kommentar


      • #4
        nun, wenn ich als Beispiel in den Ordner pics ein Foto mit dem Namen test.jpg gebe, ist das doch über die url www.example.com/pics/test.jpg für jeden abrufbar. Und das soll eben nicht passieren.
        Deshalb auch die Überlegung des Ordners ausserhalb des www-Bereichs, also ausserhalb des roots(nennt man das so?)
        Und da weiß ich eben nicht, wie ich das Bild dann per php einbinden kann.
        Mit <img src="../pics/test.jpg"> werde ich ja wahrscheinlich nicht auf ein Bild ausserhalb des roots zugreifen können, oder doch?

        Kommentar


        • #5
          mach mal in einer bild.php sowas:
          PHP-Code:
          header("Content-Type: image/jpeg");
          echo 
          file_get_contensdirname(__FILE__) ."/pics/test.jpg"); 
          bitcoin.de <- Meine Freelancerwährung

          Kommentar


          • #6
            Zitat von majak01 Beitrag anzeigen
            nun, wenn ich als Beispiel in den Ordner pics ein Foto mit dem Namen test.jpg gebe, ist das doch über die url www.meineseite.de/pics/test.jpg für jeden abrufbar. Und das soll eben nicht passieren.
            Deshalb auch die Überlegung des Ordners ausserhalb des www-Bereichs, also ausserhalb des roots(nennt man das so?)
            Und da weiß ich eben nicht, wie ich das Bild dann per php einbinden kann.
            Mit <img src="../pics/test.jpg"> werde ich ja wahrscheinlich nicht auf ein Bild ausserhalb des roots zugreifen können, oder doch?
            Bitte nutze example.de oder so, aber keine Seite, welche Dir nicht gehört.
            Zudem halte ich es wie Messier 1001, die Bilder ausserhalb des DocRoots ablegen.
            Bilder in der DB macht nur seltenst Sinn, dazu gibt es hier einige Diskussionen.
            Wenn Du die Bidler allerdings schon durch PHP jagst, lässt sich das sicher ein
            - löschen der Exif Daten
            - Skalieren nach den Bedürfnissen
            on the Fly erledigen.

            Um bestimmte Bilder nur für bestimmte Nutzer und auch nur zeitlich begrenzt sichtbar zu machen, musst Du mit den Links wie sie Alpha vorgeschlagen hat arbeiten.

            Kommentar


            • #7
              Zitat von Alpha Beitrag anzeigen
              mach mal in einer bild.php sowas:
              PHP-Code:
              header("Content-Type: image/jpeg");
              echo 
              file_get_contensdirname(__FILE__) ."/pics/test.jpg"); 
              OMG nein! Wieso liest Du das bild erst in den Speicher bevor Du es ausgibst? readfile ist hier der bessere Weg

              Kommentar


              • #8
                Zitat von Alpha Beitrag anzeigen
                mach mal in einer bild.php sowas:
                PHP-Code:
                header("Content-Type: image/jpeg");
                echo 
                file_get_contensdirname(__FILE__) ."/pics/test.jpg"); 

                ich sehe so auf die schnelle auch kein Unterschied zu
                http://pics/test.jpg

                Kommentar


                • #9
                  Ich verstehe nicht was Du mir sagen willst? :-/ Was hat das mit meiner aussage "nimm readfile statt file_get_contents" zu tun?

                  Kommentar


                  • #10
                    Ich wollte nur nochmal auf Deinen Tip aufmerksam machen :
                    Bilder einfach ausserhalb von Document root ablegen.
                    was ja bei dem Codebeispiel von Alpha nicht berücksichtig wurde.
                    Eigentlich wollte ich wohl Alpha zitieren, nicht Dich; sorry.

                    Kommentar


                    • #11
                      vielen lieben Dank, ich habs Dank eurer Hilfe lösen können.
                      Datei liegt in ein htaccess geschützten Ordner und über php kann ich super auf die Dateien zugreifen.
                      Großes DANKE

                      Kommentar

                      Lädt...
                      X