Ankündigung

Einklappen
Keine Ankündigung bisher.

anonymer Download

Einklappen

Neue Werbung 2019

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

  • djsky01
    hat ein Thema erstellt anonymer Download.

    anonymer Download

    Hallo,
    ich versuche mich gerade an einem script, um anonymen Download zu erzeugen.
    Dafür habe ich eine download.php gemacht, in der folgender Code steht:
    PHP-Code:
     Der Ordner indem sich die Dateien befinden
     
    */
    $download_dir "http://meins.de/downloads/";

    /*
     * Die herunterladbare Datei:
     */
    $files "test1.pdf";
    /*
     * Den kompletten Pfad der Datei (+Dateiname) in $file speichern
     */
    $file $download_dir.$files;

    /*
     * Header-Einstellungen
     */
    header("Content-Type: x-type/subtype");
    header("Content-Length: ".filesize($file));
    header("Content-Disposition: attachment; filename=".$files);

    /*
     * Das "Speichern-Unter"-Fenster erscheinen lassen
     */
    readfile($file); 
    Nun, in diesem sehr einfach dargestellten Beispiel erscheint mir das Speichern unter-Fenster, allerdings will er immer die download.php downloaden und nicht die test1.pdf

  • Tropi
    antwortet
    Zitat von djsky01 Beitrag anzeigen
    ach so, jetzt weiß ich was ihr meint. Hab die Datei jetzt mal runtergeladen und da steht folgendes drin:
    Tja, dann beheb diese Fehler einmal. Nachdem du ja nicht den ganzen Quelltext hier gepostet hast () musst du selbst wissen was in Zeile 43 steht bzw. wie du den Fehler dort korrigierst. Ebenso ist der (Beispiel-)Pfad von oben wohl falsch.

    Die anderen zwei Warnings sind Folgefehler.

    Einen Kommentar schreiben:


  • tr0y
    antwortet
    Der Download link ist doch sichtbar.

    Einen Kommentar schreiben:


  • djsky01
    antwortet
    nun, ich habe ein loginsystem, es wird also geprüft ob ein user eingeloggt ist oder nicht. Nur eingeloggte User können die Dateien runterladen. Der Dateipfad liegt ausserhalb des roots, ist also so eigentlich nicht erreichbar. nun soll halt zusätzlich noch der downloadlink nicht sichtbar sein.

    Einen Kommentar schreiben:


  • tr0y
    antwortet
    Und davon versprichst du dir genau was ?

    Einen Kommentar schreiben:


  • djsky01
    antwortet
    sry, etwas falsch ausgedrückt. Anonym daran ist eigentlich nur, dass vorher eine id per get an die download.php übergeben wird und dann eine db-abfrage statt findet, in der der pfad und die Datei drin stehen, zu der die id gehört.
    Anonym ist im endeffekt also eigentlich nur der pfad und der genaue dateiname.

    Einen Kommentar schreiben:


  • tr0y
    antwortet
    Was genau ist an deinem Download denn anonym ?

    Einen Kommentar schreiben:


  • djsky01
    antwortet
    ach so, jetzt weiß ich was ihr meint. Hab die Datei jetzt mal runtergeladen und da steht folgendes drin:
    Code:
    <br />
    <b>Warning</b>:  filesize() [<a href='function.filesize'>function.filesize</a>]: stat failed for http://www.meinedomain.de/unterlagen/test1.pdf in <b>/www/htdocs/wxxx/download.php</b> on line <b>43</b><br />
    <br />
    <b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /www/htdocs/wxxx/download.php:43) in <b>/www/htdocs/wxxxx/download.php</b> on line <b>43</b><br />
    <br />
    <b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /www/htdocs/wxxxx/download.php:43) in <b>/www/htdocs/wxxx/download.php</b> on line <b>44</b><br />
    <br />
    <b>Warning</b>:  readfile(http://meinedomain/unterlagen/test1.pdf) [<a href='function.readfile'>function.readfile</a>]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
     in <b>/www/htdocs/wxxx/download.php</b> on line <b>49</b><br />

    Einen Kommentar schreiben:


  • Tropi
    antwortet
    Du sagst aber es wird als "download.php" angezeigt und nicht mit deinem gewählten Dateinamen, also wäre es eben interessant ob wenigstens der Inhalt korrekt, oder, wie sehr wahrscheinlich, nicht korrekt ist. Den MIME-Type kannst du wenn du die Web Developer Tools (Entwicklertools) aufmachst, im Network Tab sehen.

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Wir wollen wissen ob dein PHP-Code in der Datei steht die dein Browser bekommt oder nicht

    Einen Kommentar schreiben:


  • djsky01
    antwortet
    was meint ihr denn bitte mit Inhalt der runtergeladenen Datei. Das ist ein normales Word-Dokument, dass als pdf umgewandelt wurde, also ein pdf-file, dass runtergeladen werden soll. Der Inhalt der Datei wird ja wohl egal sein oder?

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Tropi hat doch ne ganz klare Frage gestellt. Wie sieht der Inhalt der runtergeladenen Datei aus?

    Einen Kommentar schreiben:


  • style
    antwortet
    PHP-Code:
    $dldir realpath(BASEPATH.'http://www.meinedomain.at/unterlagen'); 
    das wird nicht funktionieren. Du kannst nicht den absoluten Pfad mit dem Web-Pfad mischen.

    PHP-Code:
    define('BASEPATH'realpath(dirname(__FILE__)));
    echo 
    BASEPATH
    guck mal was da drin steht. Von da aus kannst du weiter gehen. Ich gehe mal davon aus, das das Define in deiner Index.php bzw im Webroot liegt. Somit wäre $dldir folgendermaßen:

    PHP-Code:
    $dldir realpath(BASEPATH.'/unterlagen'); 
    style

    Einen Kommentar schreiben:


  • djsky01
    antwortet
    code sieht jetzt so aus, mit dem selben Ergebnis:
    PHP-Code:
    $files "test1.pdf";
    define('BASEPATH'realpath(dirname(__FILE__)));
    $dldir realpath(BASEPATH.'http://www.meinedomain.at/unterlagen');
    header("Content-Type: application/octet-stream");
    header("Content-Length: ".filesize($dldir.'/'.$files));  
    header("Content-Disposition: attachment; filename=".$files);
    readfile($dldir.'/'.$files); 
    er will also immer noch die download.php downloaden und nicht das file.
    @Tropi: Kann ich irgendwie abfragen, welcher mimetype ausgeführt wird?

    Einen Kommentar schreiben:


  • Tropi
    antwortet
    Was ist denn der Inhalt der Datei die du runterlädst? Falls dir das /* bzw. <?php im Original-Quelltext auch fehlt, wird das Script nicht korrekt ausgeführt und du bekommst wahrscheinlich text/plain als MIME-Type.

    Einen Kommentar schreiben:

Lädt...
X