[PHP5] Datei Download via header/Content-type

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

  • [PHP5] Datei Download via header/Content-type

    huhu^^
    Also Ich beschäftige mich nunmehr schon seit gut einem Jahr mit PHP und stehe gerade vor einem kleinen Problem.

    ich möchte auf meiner zukünftigen Homepage *.txt Dateien zum Download anbieten, da aber einige Browser *.txt Dateien direkt im Browserfenster öffnen würde ich dies gerne wie unten im Beispiel ermöglichen was auch bisher sehr gut klappt.

    PHP-Code:
       $application="txt";
       
    $dateiname="file00159";
       
    header("Content-type: application/$application");
       
    header("Content-Disposition: attachment; filename=".$dateiname.".".$application."");
       
    readfile("$dateiname.$application"); 
    das script stammt im übrigen von www.codeschnipsel.net

    Leider gibt es aber immer den Namen an der als $dateiname deklariert ist.
    Ich würde aber zb. gerne die Datei statt mit file00159.txt als Flash_Tutorial_1.txt speichern lassen.

    Ich muss auch dazu sagen das ich keinerlei Textdateien auf dem Server liegen habe sondern diese aus Feldern einer SQL db lese und entsprechend als Textfiles ausgebe die sich dann wie gewohnt im Browserfenster öffnen.

    Ich hoffe ihr konntet meinem wirrwarr folgen und habt erkannt welches Problem ich habe *fg*



    LG
    Mausi

  • #2
    Du hast doch sicherleich eine Zuordnung von file00159 zu Flash_Tutorial_1 oder?
    Nutze sie
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Original geschrieben von mrhappiness
      Du hast doch sicherleich eine Zuordnung von file00159 zu Flash_Tutorial_1 oder?
      Nutze sie
      inwiefern zuordnung ?

      Also ich würde das ganze atm auch gerne so konstruieren das ich auch existierende *.txt Dateien mit dem obigen Script Downloaden kann.

      zb. die Datei file00159.txt als Flash_Tutorial_1.txt downloaden lassen.

      Kommentar


      • #4
        PHP-Code:
        $application="txt";
           
        $dateiname="file00159";
          
        $download 'Flash_Tutorial_1';
           
        header("Content-type: application/$application");
           
        header("Content-Disposition: attachment; filename=".$download.".".$application."");
           
        readfile("$dateiname.$application"); 
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          OK klappt
          danke!


          //Edit: ich habe es gerade auf meinem Webserver ausprobiert und da funzt das nicht.
          Es wurde die HTML Seite geparst von der aus ich das Script aufgerufen habe, ausserdem fand ich in der ersten Zeile folgende Anmerkung:

          PHP-Code:
          Warningreadfile(): URL file-access is disabled in the server configuration in downloads.php on line 1195
          Warning
          readfile(Flash_Tutorial_1.txt): failed to open streamno suitable wrapper could be found in downloads.php on line 1195 
          Ich habe daraufhin etwas geGooglet und habe einen Artikel gefunden wo diese Fehlermeldung daraus Resultiert das mein Webhoster (aus sicherheitsgründen) die readfile function abgeschaltet hat.

          gibt es auch eine andere möglichkeit dies zu ermöglichen ?



          Das verzweifelte Mausi
          Zuletzt geändert von scriptmaus; 02.11.2005, 11:06.

          Kommentar


          • #6
            Hm, also meiner meinung nach kannst Du die Datei erst manuell einlesen und dann einfach per echo rausschreiben. So wie hier:
            http://de2.php.net/manual/de/function.fread.php

            Dann pustest Du den Content einfach per echo raus, nachdem Du Deine Header gesetzt hast.
            Gruss Niels

            Kommentar


            • #7
              Original geschrieben von bitesser
              Hm, also meiner meinung nach kannst Du die Datei erst manuell einlesen und dann einfach per echo rausschreiben. So wie hier:
              http://de2.php.net/manual/de/function.fread.php

              Dann pustest Du den Content einfach per echo raus, nachdem Du Deine Header gesetzt hast.
              Gruss Niels
              Aber das geht ja eben von meinem Provider aus garnicht (!)
              das ist ja das Problem an der sache.

              Kommentar


              • #8
                Original geschrieben von scriptmaus
                Aber das geht ja eben von meinem Provider aus garnicht (!)
                das ist ja das Problem an der sache.
                Ich bin da nicht der Experte, aber du hast doch gesagt, dass dein Provider readfile() "verboten" hat und fread != readfile.

                Kommentar


                • #9
                  Original geschrieben von Le_Cheffe
                  Ich bin da nicht der Experte, aber du hast doch gesagt, dass dein Provider readfile() "verboten" hat und fread != readfile.
                  ist klar "das es nicht gleich ist" aber es funktioniert auch nicht...

                  Vielleicht mache ich es ja Falsch mit fread und du könntest vielleicht mein obiges bsp. so abändern das es mit fread klappt, wäre wirklich nett denn ich komme damit nicht klar :/
                  Zuletzt geändert von scriptmaus; 02.11.2005, 15:08.

                  Kommentar

                  Lädt...
                  X