Öffnen von xls-, doc-, ppt-, pdf-Dateien

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

  • Öffnen von xls-, doc-, ppt-, pdf-Dateien

    Hallo,

    ich möchte per PHP-Code prüfen, ob eine oder mehrere Dateien in einem bestimmten Verzeichnis vorhanden sind.
    Wenn mehrere Dateien enthalten sind, zeige ich Links an, so dass man per Mausklick die entsprechende Datei öffnen kann. Soweit funktioniert's.
    Falls aber genau eine Datei (im xls-, doc-, ppt oder pdf-Format) im Verzeichnis enthalten ist, möchte ich diese automatisch per PHP-Code in ihrer Standardanwendung (Excel, Word, Powerpoint bzw. Adobe Reader) öffnen.

    Wie kann ich eine solche Datei direkt öffnen, so wie mit dem Mausklick auf den Link?

    Danke!

    Gruß
    Toni T.

  • #2
    indem du für den Fall dass nur eine Datei vorhanden ist die Ausgabe einer Html-Seite verhinderst und stattdessen direkt die Datei an den Browser sendest??

    Edit:
    readfile() dürfte das richtige für dich sein.
    Zuletzt geändert von Quetschi; 05.04.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


    • #3
      Es müßte auch ohne PHP gehen, indem man den Mime-Type im Link deklariert:
      Code:
      <a href="datei1.pdf" type="application/pdf">datei1.pdf</a>
      <a href="datei2.doc" type="application/msword">datei2.doc</a>
      Quelle: http://de.selfhtml.org/html/verweise...n.htm#mimetype

      Kommentar


      • #4
        ähmm...

        er will ja für den Fall dass es nur eine einzige Datei gibt erst gar keine Links ausgeben sondern direkt die Datei an den Client senden...
        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


        • #5
          Hier weitere Infos zum Problem, die vielleicht von Bedeutung sind:

          Betriebssystem: Windows 2000
          Ich XAMPP mit PHP-Version 5.0 installiert.

          Mit dem folgenden Quellcode-Auszug kann ich zwar die Anwendung (z.B. Excel) öffnen, aber der Inhalt kann von der Anwendung nicht interpretiert werden und wird daher in "Hieroglyphen" angezeigt.

          PHP-Code:
          $datei $listFile[0];
          $ext strtolower(substr(strrchr($datei"."), 1));
          $ctype "";
          switch (
          $ext)
          {
              case 
          "pdf"$ctype "application/pdf"; break;
              case 
          "doc"$ctype "application/msword"; break;
              case 
          "xls"$ctype "application/vnd.ms-excel"; break;
              case 
          "ppt"$ctype "application/vnd.ms-powerpoint"; break;
          }
          $dateigroesse filesize ("$datei");
          header("Content-Length: $dateigroesse");
          header("Content-type: $ctype");
          header("Content-Disposition: attachment; filename=$datei");
          header("Content-Transfer-Encoding: binary");
          header('Accept-Ranges: bytes');
          @
          readfile($datei); 
          Vielleicht hilft diese Angabe bei der Problemlösung.

          Danke und Gruß
          Toni

          Kommentar


          • #6
            *kopfkratz*

            ich glaub ich hab mal was ähnliches gemacht wo ich aber gar keine header vorrausgeschickt hab... eigentlich ned richtig, aber das geht...
            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


            • #7
              Nee, wenn ich die Header-Angaben weglasse, zeigt er irgend welche Hieroglyphen (s.u.) im Browser an, ohne die Standardanwendung (in diesem Fall Excel) zu öffnen.

              EDIT:
              $ÍÉ€...

              Kommentar


              • #8
                Wenn du an der Stelle im Code Header angeben kannst, warum dann nicht einfach
                PHP-Code:
                header('Location: '.$datei); 
                ?

                Wenn der Server richtig konfiguriert ist und die Dateiendung auch das anzeigt, was drin ist, dann klappts auch mit dem MimeType.

                Kommentar


                • #9
                  Heureka! Ja, so funktioniert es.
                  Die Welt kann so einfach sein.

                  Vielen Dank!
                  Toni

                  Kommentar

                  Lädt...
                  X