Ankündigung

Einklappen
Keine Ankündigung bisher.

Link auf Dateien außerhalb des Document Root

Einklappen

Neue Werbung 2019

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

  • Link auf Dateien außerhalb des Document Root

    Hallo Forum,

    ich lagere meine Downloads außerhalb des Document Root und rufe diese über ein Formular per "post" ab. Das klappt auch alles wunderbar. Files kommen sauber beim Client an.

    Nun habe ich mir zusätzlich eine switch geschrieben welche je nach Dateiendung das Download-Formular anders gestaltet.
    Kurz gesagt - switch greift auf 3 arrays mit Dateiendungen zurück und filtert Bilder, Videos und Dokumente(.pdf .doc etc...). Stößt sie auf eine Datei welche keinem der 3 Arrays zugehört sagt die switch "unbekannte Datei".

    Je nach Dateiendung soll nun im Download-Formular eine Vorschau der Datei ermöglicht werden sofern es sich um ein Bild oder um ein Video handelt. Würden die Files nun im Document Root liegen wäre das ja auch kein Thema. Nun liegen sie aber leider außerhalb.

    Habe das Problem dann zuerst mal mittels symlink gelöst. Hat auch funktioniert. Ich konnte so eine Vorschau für die Bilder generieren und auch Videos mittels symlink im Flash-Player einbinden. Was mich daran jedoch störte war, dass man, wenn man www.meine-domain.de/symlinks/symlink eingibt, dann die Datei angezeigt bekam, welche außerhalb der Document Root liegt. Dann kann ich ja auch direkt die Files innerhalb des Document Root lagern.

    Also habe ich weiter gessucht und mein Glück mit der Funktion link( from , to ) versucht. Allerdings hat das irgendwie gar nicht gefunzt oder ich habe schon den Wald vor lauter Bäumen nicht mehr gesehen.

    Gibts evtl. noch irgendeine andere Möglichkeit ein Bild / Video als Vorschau zu integrieren obwohl das Bild / Video außerhalb des Document Root liegt?

    Viele Grüße
    Michael

  • #2
    Was verstehst du denn überhaupt unter einer „Vorschau“?

    Wenn du Symlinks auf die Dateien setzt, die oberhalb des Doc_Root liegen, und sie dann über diese Symlinks als ganz normale Ressourcen in dein HTML-Dokument einbettest - dann kannst du dir das mit dem Ablegen oberhalb natürlich gleich ganz sparen.

    Und wenn du direkt das Original-Bild/-Video als sogenannte „Vorschau“ anzeigen lässt - wozu dann eigentlich noch ein „Download-Formular“?
    Dann hat mein Browser es doch bereits heruntergeladen, wenn er die Vorschau anzeigt.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Zitat von ChrisB Beitrag anzeigen
      Und wenn du direkt das Original-Bild/-Video als sogenannte „Vorschau“ anzeigen lässt - wozu dann eigentlich noch ein „Download-Formular“?
      Dann hat mein Browser es doch bereits heruntergeladen, wenn er die Vorschau anzeigt.
      Eben. Erzeuge Thumbnails und speichere diese erreichbar ab...
      Je grösser der Dachschaden, desto schöner der Ausblick zum Himmel. - [WIKI]Karlheinz Deschner[/WIKI]

      Kommentar


      • #4
        Hallo zusammen,

        unter einer Vorschau verstehe ich eine reduzierte bzw. verkleinerte Version des Originals - ggfs. mit eingebranntem Wasserzeichen.
        Ich arbeite für diverse Fernsehsender und meine Videos sind im Durchschnitt mit 50 -100 Mbit/s encodiert (Sendestandard) - Die Vorschaufilme sind meistens mit 2-5Mbit/s encodiert und liegen als flv. File vor. Die Bilder sind in HD-Auflösung 1920 x 1080.

        Auf die Downloads haben nur bestimmte Benutzer Zugriff und sonst darf da auch niemand ran. Es handelt sich um Werbevideos und/oder dem zugehörigen Rohmaterial, sowie Spezialeffekten.

        Die Idee mit den Thumbnails fällt leider raus - meine Kunden möchten kein kleines Vorschaubildchen in der größe 160x90 PX. Deren Wunsch ist 1920x1080. Das gleiche gilt für die Flash-Filme - die sind auch 1920x1080. Wie sollen sie auch sonst die Qualität von bestimmten Bildkorrekturen / Manipulationen oder Effekten beurteilen können? Außerdem handelt es sich um urheberrechtlich geschütztes Material. Darum darf es nicht an die Offentlichkeit geraten.

        Hat vielleicht sonst noch jemand eine Idee?


        Viele Grüße
        Michael

        Kommentar


        • #5
          Zitat von michael2105 Beitrag anzeigen
          unter einer Vorschau verstehe ich eine reduzierte bzw. verkleinerte Version des Originals - ggfs. mit eingebranntem Wasserzeichen.
          Und was bitte haben diese Versionen mit den von dir erwähnten Symlinks zu tun?
          Symlinks erstellen von sich aus keine Vorschauversionen, sondern sie verlinken auf die Originale.

          Die Idee mit den Thumbnails fällt leider raus - meine Kunden möchten kein kleines Vorschaubildchen in der größe 160x90 PX. Deren Wunsch ist 1920x1080. Das gleiche gilt für die Flash-Filme - die sind auch 1920x1080. Wie sollen sie auch sonst die Qualität von bestimmten Bildkorrekturen / Manipulationen oder Effekten beurteilen können?
          Also noch mal - was soll daran jetzt „Vorschau“ sein?

          Möchtest du direkt das Originalmaterial zur Verfügung stellen (damit man Qualität etc. beurteilen kann) - oder doch nur Vorschau-Versionen, die in irgendeiner Art und Weise bearbeitet wurden?
          Wenn an der Qualität und Auflösung nichts geändert werden soll, dann bspw. an der Länge bei Videos, also nur ein kurzer Ausschnitt ...?

          Bitte sieh ein, dass du erst mal genau spezifizieren musst, was es letztendlich sein soll, bevor man dir Tipps zur Umsetzung geben kann.
          So lange du das selber nicht weißt, kann man dir auch keine genaueren Ratschläge dazu geben.

          Hat vielleicht sonst noch jemand eine Idee?
          Drück' dich klar und deutlich aus, und beschreibe nachvollziehbar, was du jetzt eigentlich willst.

          Bspw. hinsichtlich der Sache mit den Bildern herrscht immer noch Unklarheit - weil du einerseits von einer Vorschau redest, andererseits die übliche Umsetzung einer solchen mittels Thumbnails aber auch nicht willst.
          [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

          Kommentar


          • #6
            Sorry wenn ich mich wirklich so unklar ausgedrückt haben sollte - ich fang einfach nochmal von vorn an.

            Es gibt immer 2 Versionen von den Videos - das High-Res File für den Download, sowie eine reduzierte Version in Flash. Beides darf nicht innerhalb des Document Root liegen. Darum werden die Downloads - also die High-Res Files- per Formular mittels "post" an eine Funktion geschickt, welche den Download an den Client schickt. Nun soll aber die Möglichkeit gegeben werden, das Flash-Video anzusehen. Das Flash-Video ist also im Prinzip das selbe wie das High-Res-Video, nur das sich die Qualität vom Original unterscheidet und es den Vorteil hat, dass man es im Browser ansehen kann. Die Flash-Files liegen aber nunmal auch außerhalb des Document Root und müssen irgendwie in einem Flash-Player angezeigt werden. Und da kam dann die Idee mit dem Symlink auf, die zwar funktioniert, aber nunmal leider nicht die Lösung darstellt.

            Bei den Bildern ist es Prinzip gennau wie bei den Videos. Es gibt eine High-Res-Version die nicht im Browser dargestellt werden kann und nochmal das gleiche als jpg-Version. Die Bilder liegen wie auch die Videos ebenfalls außerhalb des Document Root. Die jpg's sollen innerhalb des Download-Formulars per img src= ... eingebunden werden. Nur dass die Bilder halt in der Größe nicht in 1920 x 1080PX dargestellt, sondern verkleinert in Thumbnailgröße (z.B. widht="15%;") dargestellt werden. Klickt man auf den Hyperlink der das jpg-Bild umschließt springt eine Lightbox auf und skaliert das Bild auf die richtige Größe. Der Download des High-Res-Bildes erfolgt ebenfalls wieder über das Formular.

            Ich hoffe das war nun nachvollziehbar - sorry nochmal für die Missverständnisse.

            Gruß
            Michael

            Kommentar


            • #7
              Und da kam dann die Idee mit dem Symlink auf, die zwar funktioniert, aber nunmal leider nicht die Lösung darstellt.
              Dann musst du - immer noch - das Problem genauer spezifizieren.

              Bisher wissen wir nur, dass du keinen Abruf der Ressourcen „für Jedermann“ und von überall erlauben willst.
              Also musst du erst mal Bedingungen definieren, unter denen der Abruf erlaubt sein soll - dazu gibt es immer noch nichts handfestes.

              Im nächsten Schritt musst du dann schauen, welche von diesen Bedingungen überhaupt in einem HTTP-Umfeld umsetzbar sind, und wenn ja, wie.
              [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

              Kommentar


              • #8
                Wenn du schon ein Script hast, dass die Videos und Bilder zum herunter laden "durchschaufelt" - kannst du dann nicht dieses (oder eine abgewandelte Version davon) nutzen und in die src-Attribute einbinden?

                Code:
                <img src="somewhere/show_hidden_material.php?file=img13.jpg" />
                Wo genau dann die Überprüfung der Zugangsberechtigung durchgeführt wird, hast du uns (siehe voherige Meinung) bisher verschwiegen. Dies sollte aber wohl eher in dem Script geschehen, dass die Daten aus dem Ordner "somewhere_beyond_doc_root" holt.
                Je grösser der Dachschaden, desto schöner der Ausblick zum Himmel. - [WIKI]Karlheinz Deschner[/WIKI]

                Kommentar


                • #9
                  Es gibt einen Login und eine sql-Tabelle. Ist der Benutzer eingeloggt bzw. die Session ist gültig, kann er auf seine Downloads zugreifen. Die Downloads stehen ebenfalls in einer Datenbank.

                  Befindet sich der User nun in seiner privaten Download-Sektion werden die Downloads aus der DB abgerufen und untereinander, jeweils in einem Formular für den Download ausgegeben. Mit anderen Worten - wir befinden uns also gerade ganz normal in unserer index.php innerhalb des Document_Root.

                  Handelt es sich bei dem Download nun um ein Video, so kann er das High-Res-Video per Formular herunterladen (wird ja sozusagen von php von außerhalb des Document_Root abgeholt) und das Flash-Video soll er ansehen können. Ich wüsste aber nicht dass man ein Flash-Video von außerhalb des Document_Root an den Flash_Player streamen kann.

                  Bei den Bildern verhält es sich im Prinzip genauso.

                  Ob das funktioniert die Bilder per
                  Code:
                  <img src="somewhere/show_hidden_material.php?file=img13.jpg" />
                  abzuholen weiß ich nicht. EIne ähnliche Idee hatte ich auch bereits und habe
                  PHP-Code:
                  include('$PFAD_NACH_OBERHALB_DOC_ROOT.'/extern.php?file='.$files->file); 
                  versucht.
                  Da wusste ich leider noch nicht das man mit include keine Variablen übergeben kann. Jertzt weiß ich's ja ôÔ.
                  Mit welcher Funktion würde man denn dann in der außerhalb liegenden php-Datei arbeiten? readilfe oder sowas in der Art vielleicht?


                  Viele Grüße
                  Michael

                  Kommentar


                  • #10
                    Zitat von michael2105 Beitrag anzeigen
                    Da wusste ich leider noch nicht das man mit include keine Variablen übergeben kann.
                    Erstens sind das keine Variablen, sondern Parameter - und zweitens kann man natürlich Parameter übergeben, wenn denn HTTP benutzt wird. Bei einer Einbindung über das Dateisystem aber natürlich nicht.

                    Mit welcher Funktion würde man denn dann in der außerhalb liegenden php-Datei arbeiten? readilfe oder sowas in der Art vielleicht?
                    Ja, bspw. per readfile.


                    Nach langer Diskussion reduziert sich dein Problem jetzt auf eins, das hier und im WWW schon vielfach diskutiert wurde - wie man einen Zugriffsschutz auf Ressourcen über den Umweg über ein PHP-Script realisiert.
                    Vor weiteren Fragen dazu also bitte suchen/informieren.
                    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                    Kommentar

                    Lädt...
                    X