Ankündigung

Einklappen
Keine Ankündigung bisher.

die Abfrage erscheint ...wollen Sie es speicher oder anzeigen? ...

Einklappen

Neue Werbung 2019

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

  • die Abfrage erscheint ...wollen Sie es speicher oder anzeigen? ...

    Mit folgendem Programmcode wird Datei vom Server in das Outputbuffer geschrieben und automatisch eröffnet. Die Datei heißt urlDownload_php.mht Wie erreicht man, dass vorher die Abfrage vom BS kommt, ob man die Datei öffnen speichern will ? Änderung in php-ini ? Nichts gefunden. Sehen Sie auch mein "coding.itmotl.eu"

    PHP-Code:
      $InpFile "EncryptedFile.txt";
    header('Content-Description: File Transfer');
    // sorgt dafür, dass die Datei zum Download angeboten
    // wird und nicht im Browser geöffnet wird
    header('Content-Type: text/plain');
    header('Content-Disposition: attachment'); // ; filename="DownloadCodec.txt"
    // header('Expires: 0');
    // erreichen, dass der Browser die Datei nicht in seinen Cache schreibt
    // und die aktuelle Datei herunterlädt.
    header('Cache-Control: no-cache, must-revalidate');
    // header('Pragma: public');
    header('Content-Length: 'filesize($InpFile)); // for time-counting
    header('Connection: close');
    readfile($InpFile);
    exit; 

  • #2
    Moin, moin!

    die Header, die du setzt kommen nicht beim Browser an.
    Prüf das mal bitte!
    Es gibt die Methode headers_sent()

    PHP-Code:
    if (headers_sent())
    {
        echo 
    "Oops!";
        die;
    }

    // .. rest of your script posted above 
    Falls es da aussteigt, musst du rausfinden, wo denn da schon was gesendet wird und das abstellen oder entsprechend umbbauen


    Desweitern macht der Webserver seltsame Sachen.
    Wenn man den Link "Show results of Encryption" klickt, dann startet das Script nicht direkt, sondern es gibt zunächt eine Umleitung mit einem 301 HTTP-Status ... wirkt etwas merkwürdig.



    Ansonsten ist der Content Disposition Header der richtige, um einen Download zu triggern.
    Insbesondere bei Textdateien und PDF Dateien halten sich die Browser aber nicht immer daran.

    Aber schau erstmal, dass deine gesetzten Header auch ausgeliefert werden.
    IN den meisten Browsers gibt es die developer tools (Häufig per F12 aufrufbar) da kannst du schauen, was da als response header tatsächlich beim Client ankommt.

    Kommentar


    • #3
      Wenn ein Header nicht gesendet werden kann, gibts einen Eintrag im Error-Log. Bin immer wieder erstaunt, wenn die Leute nicht selber auf die Idee kommen dort nachzuschauen. Ist das doch die erste Anlaufstelle bei Problemen.

      Kommentar


      • #4
        MOD: Verschoben von PHP-Fortgeschritten
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Hallo und danke, wenn ich beim Chrome mit F12 die 'Untersuchung' öffne, gibt es bei Console und sonst wo gar nichts. Fehler und Hinweise sind = 0. Beim Server habe ich das Verzeichnis 'logs', dort finde ich aber nichts.

          Kommentar


          • #6
            Du musst im Reiter "Netzwerk" (oder Netzwerkanalyse schauen), dann dort im entsprechenden Eintrag findest du die HTTP Request und Reponsedaten.
            The string "()()" is not palindrom but the String "())(" is.

            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar

            Lädt...
            X