• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[GELOEST] Geschützter Dateidownload

phinix2000

Neues Mitglied
Hallo!

Hätte folgendes Szenario zu bewältigen, bin mir aber nicht sicher wie ich es angehen soll.
Ich habe eine Webapp in HTML und PHP geschrieben, in der unsere Buchhaltungsbelege abgelegt werden sollen.
Es gibt einen Dateiupload, und wenn dieser eine Datei erhält wird für diese ein Index in der Datenbank angelegt und die Datei an einen Speicherort außerhalb des
Webserver-Root Verzeichnisses abgelegt (aus Sicherheitsgründen). Funktioniert mal soweit.

Jedoch... Wie bekomme ich diese Datei wieder retour? Es soll auf der Seite eine Dateivorschau geben wenn man einen Button klickt und natürlich sollen diese Dateien auch Downloadbar sein wenn man die entsprechende Berechtigung dafür hat (eigenes Rechtesystem).

Wie gehe ich das am besten an? Oder ist es sinnlos die Dateien auf einem anderen Speicherort zu speichern weil es bessere Wege gibt?

Liebe Grüße,
Alex
 
Werbung:
Oder ist es sinnlos die Dateien auf einem anderen Speicherort zu speichern weil es bessere Wege gibt?
Nein, das ist schon so ok. Du musst nur einen Download aus PHP ansteuern. Beispiel:
PHP:
function makeDownload($file, $name, $type)
  {
    
    header("Content-Type: $type");

    header("Content-Disposition: attachment; filename=\"$name\"");

    readfile($file);
  }
$file = Dateiname auf dem Server
$name = Dateiname, wie er beim Download angezeigt werden soll
$type = Siehe https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
 
Werbung:
Das ist ja ärgerlich! Wenn ich das vorher gewusst hätte, hätte ich mich sofort zurückgehalten.
Erstmals vielen Dank für die Antwort :)
Werde ich morgen mal ausprobieren.

Aber was hat das eine mitn anderen zutun? Ist es nicht erlaubt sich an mehreren Stellen zu informieren?

Liebe Grüße,
Alex
 
Ist es nicht erlaubt sich an mehreren Stellen zu informieren?
Ist es, aber du solltest zumindest darauf hinweisen. Stelle dir mal vor:
Ich habe deine Frage gelesen, kenne die Antwort und krame aus meiner Schatzkiste ein Beispiel und poste diese (so wie hier). Kurz danach siehst du in einem anderen Forum, das eine gleiche bzw. ähnliche Lösung gepostet wurde. D.h. ich hätte mir hier die Arbeit umsonst gemacht. So etwas ist einfach ärgerlich und Verschwendung von Zeit derer, die helfen wollen.
 
Werbung:
Nein, das ist schon so ok. Du musst nur einen Download aus PHP ansteuern. Beispiel:
PHP:
function makeDownload($file, $name, $type)
  {
   
    header("Content-Type: $type");

    header("Content-Disposition: attachment; filename=\"$name\"");

    readfile($file);
  }
$file = Dateiname auf dem Server
$name = Dateiname, wie er beim Download angezeigt werden soll
$type = Siehe https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types

Vielen Dank!! Das war die Lösung :)

Liebe Grüße
 
Wenn ich "Buchhaltungsbelege" lese, gehe ich von aus, dass es ein Login gibt. Wenn das so ist und du einen Wert in einer Session abgelegt hast, kannst du vor dem Download prüfen, ob dieser Wert in der Session ist und wenn nicht, lieferst du keine Datei aus, oder, wenn man sich einen Spaß machen will, ein Image mit einem weinendem Smiley :D :cool:
 
Werbung:
Zurück
Oben