Datei download?

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

  • Datei download?

    Hallo! Ich möchte eine Datei zum Download anbieten. Wenn man auf den Link klickt, will ich aber dass sich ein DOWNLOAD FILE öffnet und nicht versucht wird, die Datei anzuzeigen! Ich habe dass hier gefunden, aber wie realisere ich dass auf meinen href??
    PHP-Code:
     <?php 

    header
    ('Content-Disposition: attachment; filename="PHP-Skript.php"'); //Sagt dem Browser, dass es sich um einem Download handelt 
    header('Content-Type: x-type/subtype'); //"Bug-Fix" für den IE 4.x & 5.x 

    readfile('phpskript.php'); 

    ?>
    und so sieht dann mein Link aus:

    PHP-Code:
    <a href='".$file."'><img src='imgs/icons/link_go.png'></a
    Zuletzt geändert von Kangarooo; 12.01.2010, 14:26.

  • #2
    Hi!

    Lies Dir mal das hier durch, dass wird Dir helfen (z.B. der 1. Link):

    http://lmgtfy.com/?q=php+dateidownload

    mfg streuner
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

    Kommentar


    • #3
      Jo, daher habe ich ja auch den Code, ich verstehe halt nicht, wie ich dass in meinen Link einbauen kann.

      Kommentar


      • #4
        Was passiert denn?

        Kommentar


        • #5
          In dem Beispiel von SELFPHP steht es doch bei Beispiel 6.3 ganz genau!
          Du erstellst dir ne Funktion (download.php):

          [COLOR=#000000][COLOR=#007700]function [/COLOR][COLOR=#0000bb]makeDownload[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$file[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$dir[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$type[/COLOR][COLOR=#007700]) {

          [/COLOR][COLOR=#0000bb]header[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"Content-Type: $type"[/COLOR][COLOR=#007700]);

          [/COLOR][COLOR=#0000bb]header[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"Content-Disposition: attachment; filename=\"$file\""[/COLOR][COLOR=#007700]);

          [/COLOR][COLOR=#0000bb]readfile[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$dir[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$file[/COLOR][COLOR=#007700]);

          }[/COLOR] [/COLOR]

          //...und dann

          [COLOR=#000000][COLOR=#0000bb]$dir [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]'/is/htdocs/wp1042434_BDEO6BJ7VB/www/download/'[/COLOR][COLOR=#007700]; //Pfad

          [/COLOR][COLOR=#0000bb]$type [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]'application/zip'[/COLOR][COLOR=#007700]; //Dateitype

          [/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]if(!empty([/COLOR][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'file'[/COLOR][COLOR=#007700]]) && ![/COLOR][COLOR=#0000bb]preg_match[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]'=/='[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'file'[/COLOR][COLOR=#007700]])) {
          if([/COLOR][COLOR=#0000bb]file_exists [/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$dir[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'file'[/COLOR][COLOR=#007700]])) {
          [/COLOR][COLOR=#0000bb]makeDownload[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$_GET[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'file'[/COLOR][COLOR=#007700]], [/COLOR][COLOR=#0000bb]$dir[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$type[/COLOR][COLOR=#007700]);
          }

          }[/COLOR][/COLOR]
          [COLOR=#000000][COLOR=#007700]
          //...
          //Aufruf des Files zum Download, z.B.
          [/COLOR][/COLOR][COLOR=#0000bb]http[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#ff8000]//www.ihreDomain.de/download.php?file=dieDatei.zip[/COLOR]

          ist doch nicht so schwer, oder? Rufst deine download.php mit der Funktion auf und übergibst (als Beispiel) die Downzuloadende Datei) als GET-Parameter.

          mfg streuner
          Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
          der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

          "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

          Kommentar


          • #6
            Vielleicht hilft dir das hier weiter? Es funktioniert auf jeden Fall. Und bitte den Beispielcode ansehen.

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Mh, funktioniert irgendwie nicht! Trotzdem vielen dank für die hilfe!

              Kommentar


              • #8
                Was genau funktioniert den nicht? Ne konkretere Fehlerbeschreibung wäre wirklich hilfreich - sonst können wir Dir auch nicht helfen!

                mfg streuner
                Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
                der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

                "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

                Kommentar


                • #9
                  Also, benötige ich unbedingt $dir und $type??
                  so sieht meine download.php aus

                  PHP-Code:

                  <?php 
                  function makeDownload($file
                  {

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

                  readfile($file);

                  }


                  if(!empty(
                  $_GET['file']) && !preg_match('=/='$_GET['file'])) {
                  if(
                  file_exists ($dir.$_GET['file'])) 
                  {
                  makeDownload($_GET['file']);
                  }

                  }


                  ?>
                  und so sieht ein link aus:

                  PHP-Code:
                  $file="files/2010/Oktober/foto.jpg";
                  <
                  a href='download.php?file=".$file."'><img src='imgs/icons/link_go.png'>&nbsp;Download</a
                  Und wenn ich dann auf den Link klicke kommt nur ne leere Seite!

                  Kommentar


                  • #10
                    Hast du den 1. Link den jetzt schon mal durchgelesen?

                    Dateidownload realisieren

                    ...mach das mal und Du wirst sehen, was nicht korrekt ist bei Dir!!

                    mfg streuner

                    P.S. Der Link von Kropff funktioniert übrigens auch super!
                    Zuletzt geändert von streuner; 12.01.2010, 16:10.
                    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
                    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

                    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

                    Kommentar


                    • #11
                      PHP-Code:
                      readfile($file); 
                      PHP-Code:
                      file_exists ($dir.$_GET['file']) 
                      Fällt dir da nichts auf? Wie sieht eigentlich dein error_reporting aus?

                      Peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Kommentar


                      • #12
                        Sehr gut, vielen dank!!!

                        Kommentar


                        • #13
                          @Kropff Danke für den Link, aber ich vertshe noch nicht, wie ich es schaffe, dass die datei, welche downgeloadet wird, nur den tatsächlichen Namen bekommt, und nicht den kompletten Link als Name!

                          Kommentar


                          • #14
                            Zitat von Kangarooo Beitrag anzeigen
                            @Kropff Danke für den Link, aber ich vertshe noch nicht, wie ich es schaffe, dass die datei, welche downgeloadet wird, nur den tatsächlichen Namen bekommt, und nicht den kompletten Link als Name!
                            basename

                            Peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar


                            • #15
                              Ne, das ist klar wie ich den Name der Datei raus bekomme! nur wo trag ich den ein? Denn wenn ich den bei "filename=" eintrage, weiß der Code ja nicht, unter welcher Ordnerstruktur sich die Datei befindet!

                              Kommentar

                              Lädt...
                              X