Download einer Exceltabelle aus gesichertem Bereich heraus

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

  • #16
    Wenn ich das so mache wie hccm geschrieben hat,
    startet sich ein download, aber die Datei ist keine .xls Datei und selbst wenn ich sie erstmal ohne Endung speichere und dann die Endung manuell ransetze, ist sie nicht lesbar.

    Mfg,
    DerTobi

    Kommentar


    • #17
      Jo sorry. filename=$file geht glaub ich nicht wirklich mit den ../../ Verzeichnissen...
      gruss Chris

      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

      Kommentar


      • #18
        Ähm, und wie dann?

        Brauch ich vielleicht sowas wie fileopen?

        Mfg,
        DerTobi

        Kommentar


        • #19
          Versuch doch erstmal in der letzten zeile das filename=$file gegen filename=test.xls auszutauschen...
          gruss Chris

          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

          Kommentar


          • #20
            Das geht, das Problem ist, aber, dass das Downloadverzeichniss nun mal in einem gesicherten /files - Ordner ist, auf den man nur mit PHP zugreifen kann.
            Dass heisst wenn ich auf "../../../files/mitglieder.xls" zugreifen will, geht das nicht mehr.

            Kommentar


            • #21
              $file='../../../irgendwas.xls'; kann doch ruhig stehenbleiben.
              filename ist doch nur der Name.. Schreib rein was du willst.
              gruss Chris

              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

              Kommentar


              • #22
                Es funktioniert aber nicht mit den ../../ sondern nur ohne.

                DerTobi

                Kommentar


                • #23
                  Original geschrieben von dobberph
                  Es funktioniert aber nicht mit den ../../ sondern nur ohne.
                  ohne die zusätzlichen header und mit ../../ hast du doch anfangs gesagt, bekommst du "kryptische zeichen" angezeigt.
                  daraus sollte man doch schließen können, dass das einlesen der datei da "funktioniert" hat ...?
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #24
                    Wenn das hier der Code ist:

                    PHP-Code:
                    <?php
                    $file 
                    "../../../files/mitglieder.xls";

                    header("Content-length: " filesize($file));
                    header("Content-name: " $file);
                    header("Content-Type: application/m************cel");
                    header("Content-Disposition: attachment; filename=$file");
                    ?>
                    Dann kommt als Header unter anderem daher:

                    Content-name: ../../../files/mitglieder.xls
                    Content-Disposition: attachment; filename=../../../files/mitglieder.xls

                    Könnt mir schon vorstellen, dass dem Browser da schlecht wird und er kryptische Zeichen auskotzt, probiert hab ich das aber jetzt ned. Trenn halt Dateiname und Pfad auf:
                    PHP-Code:
                    <?php
                    $pfad 
                    "../../../files/";
                    $datei "mitglieder.xls";

                    header("Content-length: " filesize($pfad.$datei));
                    header("Content-name: " $datei);
                    header("Content-Type: application/m************cel");
                    header("Content-Disposition: attachment; filename=$datei");

                    readfile($pfad.$datei);
                    ?>
                    EDIT:
                    ähm, und laut Link von onemorered sollte Content-Typte für Excel-Dateien so lauten:
                    application/vnd.ms-excel
                    Warum da bei Selfhtml was anderes steht
                    Zuletzt geändert von Quetschi; 11.07.2005, 16:38.
                    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                    Schön - etwas Geschichte kann ja nicht schaden.
                    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                    Kommentar


                    • #25
                      Juhu, danke an alle Helfer,
                      hiermit gehts:

                      <?
                      $pfad = "../../../files/";
                      $datei = "mitglieder.xls";

                      header("Content-length: " . filesize($pfad.$datei));
                      header("Content-name: " . $datei);
                      header("Content-Type: application/vnd.ms-excel");
                      header("Content-Disposition: attachment; filename=$datei");

                      readfile($pfad.$datei);
                      ?>

                      Mfg,
                      DerTobi

                      Kommentar


                      • #26
                        Ich meinte mal wieder was anderes als ich gesagt habe..
                        ../../ sollte natürlich weder in filename noch sonst wo im header auftauchen.. Na wenigstens der ansatz war nich schlecht
                        gruss Chris

                        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                        Kommentar


                        • #27
                          Eine letzte Frage hab ich noch.

                          Die Datei, die dann runtergeladen wird, trägt den Namen, wie die PHP-Datei.

                          Der Code oben steht in mitgliederliste-download.php
                          Die xls-Datei heisst dann automatisch: mitgliederliste-download.xls

                          Kann ich das irgendwie ändern?
                          Um z.B. das Script dann vielleicht auch mal für andere Dateien zu benutzen?

                          Mfg,
                          DerTobi

                          Kommentar


                          • #28
                            Die Datei sollte eigentlich beim Download so heißen wie du in $datei angegeben hast. Falls du was anderes haben willst müsstest hinter filename in den Headern immer noch was anderes angeben.
                            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                            Schön - etwas Geschichte kann ja nicht schaden.
                            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                            Kommentar


                            • #29
                              Der Code funtkioniert genau so, wie ich oben angegeben habe, allerdings ist der Dateiname nicht gleich $datei
                              Ka, warum

                              DerTobi

                              Kommentar


                              • #30
                                Den Download aufrufen tue ich über:

                                <script Language="JavaScript">
                                function neuesFenster() {
                                var newwin;
                                var top = ((screen.height) ? (screen.height/2 - 170/2) : 0);
                                var left = ((screen.width) ? (screen.width/2 - 350/2) : 0);
                                zentr=', top='+top+', left='+left;
                                eigenschaften='toolbar=0, menubar=0, location=0, status=0, scrollbars=0, resizable=0, fullscreen=0, width=350, height=170'+zentr;
                                newwin=window.open("mitgliederlistendownload.php", "login", eigenschaften);
                                setTimeout('newwin.focus();',200);
                                }
                                </script>

                                <?
                                function datenbankfunktion(){}
                                ?>

                                <FORM method="POST" action="javascript:neuesFenster();" >
                                <input type="Hidden" name="pfad" value="../../../files/">
                                <input type="Hidden" name="datei" value="mitglieder.xls">
                                <div align="center"><INPUT type="submit" value="Mitgliederliste downloaden"></div>
                                </FORM>

                                Was mir noch fehlt ist, dass ich gerne bevor die das neueFenster() aufgerufen wird, noch die datenbankfunktion() aufgerufen wird, die etwas in eine Datenbank einträgt. Nein, dass kann ich nicht in der neuen Datei tun.
                                Wie krieg ich das hin, dass das auf den Buttondruck auch noch passiert.

                                Mfg,
                                DerTobi

                                Kommentar

                                Lädt...
                                X