S*o*s

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

  • S*o*s

    Hallöchen nochmals


    ich versuche Dateien über einen HTML-Link mit ein bestimmtes Programm (z.B notepad.exe oder winword ...) zu öffnen .

    hierzu habe ich 2 Ansätze nur beides laufen nicht oder kaum .

    1. im lokalen Netzwerk / Samba :

    läuft nur wenn ich den Link direkt im Browser eintippe ansonsten nicht .

    <a href="file://Samba/Textdatei.txt notepad.exe">Textdatei.txt mit Notepad öffnen</a>

    2.über ein Webserver (Apache) :
    diese Variante läuft überhaupt nicht

    <a href="http://www.domain.de/Textdatei.txt notepad.exe">Textdatei.txt mit Notepad öffnen</a>


    rufe um Hilfe

    S.O.S

    MfG

  • #2
    Schlips Oberhemd Socken?

    Um den Browser davon abzuhalten, die Datei selbst zu öffnen, musst du vor dem Dateinhalt einen HTTP-Header zu schicken, der den Browser veranlasst, den Dialog öffnen/speichern anzuzeigen.

    Das sieht in PHP dann so aus:
    PHP-Code:
    <?php
    $dateiname 
    'oeffnen.txt';

    header("Content-Type: application/octetstream");
    header('Content-Disposition: attachment; filename="'
      
    $dateiname'"');
    $fp fopen($dateiname'rb');
    die(
    fpassthru($fp));
    ?>
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      SOS

      Hi Titus,



      meine test.php datei ist so aufgebaut :

      <html>
      <head>
      </head>
      <body>
      <?php

      $dateiname = 'textdatei.txt';
      header("Content-Type: application/octetstream");
      header('Content-Disposition: attachment; filename="'.$dateiname. '"');
      $fp = fopen($dateiname, 'rb');

      die(fpassthru($fp));
      ?>


      </body>
      </html>



      wenn ich es ausführe bekomme ich diese Fehlemeldung :


      Warning: Cannot add header information - headers already sent by (output started at /home/www/gum/html/test/test.php:4) in /home/www/gum/html/test/test.php on line 7

      Warning: Cannot add header information - headers already sent by (output started at /home/www/gum/html/test/test.php:4) in /home/www/gum/html/test/test.php on line 8


      Inhalt der textdatei.txt (eigentlich sollte diese Datei mit notepad oder mit anderem Programm geöffnet werden doch angezeigt wird es wie immer im Browser ):

      217.225.233.68212.252.6.205217.185.162.28213.207.75.115217.0.2
      30.169217.1.12.156213.243.30.5193.159.34.980.129.23.56217.1.19
      153212.202.142.25195.175.223.69149.225.36.127193.250.26.206172202


      Was habe ich wieder nicht korrekt geamcht ???

      S*O*S

      MfG

      Kommentar


      • #4
        Re: SOS

        Warum hast du in nem Skript, dass dir nur ne Datei zum Download anbieten soll überhaupt html-tags drin?

        Sobald auch nur ein einziges auszugebendes Zeichen an den Browser geschickt wurde, kannst du danach mit PHP keine header-informationen senden, da das schon der webserver gemacht hat.

        mach aus

        Original geschrieben von ihsan
        <html>
        <head>
        </head>
        <body>
        <?php

        $dateiname = 'textdatei.txt';
        header("Content-Type: application/octetstream");
        header('Content-Disposition: attachment; filename="'.$dateiname. '"');
        $fp = fopen($dateiname, 'rb');

        die(fpassthru($fp));
        ?>


        </body>
        </html>
        die html-tags raus, also:
        PHP-Code:
        <?php

            $dateiname 
        'textdatei.txt';
            
        header("Content-Type: application/octetstream");
            
        header('Content-Disposition: attachment; filename="'.$dateiname'"');
            
        $fp fopen($dateiname'rb');

            die(
        fpassthru($fp));
        ?>
        dann klappts (also so wie Titus es schon geschrieben hatte)
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Achte unbedingt darauf, dass vor und hinter dem PHP-Bereich kein Leerzeichen, Tab oder Zeilenumbruch steht!
          Ein einzelner Zeilenumbruch hinter der schließenden Klammer wird von PHP ignoriert, alles andere an den Browser geschickt.

          d.h. mit blanks vor dem PHP gibt es wieder den "headers already sent"-Fehler; stehen blanks dahinter, werden die an den Download angehängt.
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar


          • #6
            Dank an euch

            Ich bedanke mich bei euch es läuft.

            Nochwas

            wenn ich auf Links klicke werde ich 2 mal gefragt ob ich die Datei öffnen möchte .

            Kann man diese Abfragen irgendwie auch noch unterdrücken ?
            d.h. dass die Textdatei direkt/automatisch mit dem notepad geöffnet wird ?


            Danke und guten Rutsch

            Kommentar


            • #7
              ich werd bei meinem skript nur einmal gefragt (is vom prinzip das gleiche wie bei dir), aber ganz ohne fragen direkt mit notepad öffnen geht nich, weil du ja dann vom webserver aus notepad auf dem rechner des users starten müsstest und das wird seeeehhhhrrr schwer
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                In dem "Öffnen/Speichern"-Dialog sollte eine Checkbox "nicht mehr nachfragen" (oder so ähnlich) enthalten sein. Häkchen setzen, auf "Öffnen" klicken, dann gibt´s den Dialog für die Dateiendung nie wieder.
                mein Sport: mein Frühstück: meine Arbeit:

                Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                Kommentar

                Lädt...
                X