Bytes als Datei zum Download im Browser

  • PHP

    Bytes als Datei zum Download im Browser

    Hallo zusammen,

    ich konnte leider in Google bisher keine Antwort zu meinem Problem finden, daher frage ich mal hier nach.

    Bisher habe ich nur Möglichkeiten gefunden eine auf dem Server vorhandene Datei auszugeben:
    Spoiler anzeigen

    PHP-Quellcode

    1. if (file_exists($file)) {
    2. header('Content-Description: File Transfer');
    3. header('Content-Type: application/octet-stream');
    4. header('Content-Disposition: attachment; filename='.basename($file));
    5. header('Content-Transfer-Encoding: binary');
    6. header('Expires: 0');
    7. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    8. header('Pragma: public');
    9. header('Content-Length: ' . filesize($file));
    10. ob_clean();
    11. flush();
    12. readfile($file);
    13. exit;
    14. }


    Allerdings würde ich gerne einen String als Datei ausgeben. Geht dies direkt? Oder muss ich vorher mit fopen und fwrite, oder file_put_contents eine Datei erstellen?

    Ich würde das gerne nach Möglichkeit direkt ohne Erstellung einer Datei erledigen, a la "hier Browser, nimm bitte diese Zeichenkette und gib diese als .txt Datei aus", geht sowas?

    EDIT:
    Ich versuchs mal so...
    Spoiler anzeigen

    PHP-Quellcode

    1. $result = 'Generated string that is different every time. 20121107160322';
    2. $filename = 'result_file.txt';
    3. header("Content-Type: text/plain");
    4. header('Content-Disposition: attachment; filename="'.$filename.'"');
    5. header("Content-Length: " . strlen($result));
    6. echo $result;
    7. exit;


    EDIT 2:
    Hat geklappt.. Immer wenn ich solange bastel bis ich verzweifle und hier was poste, finde ich 1m später die Antwort -.-.

    Danke trotzdem!
    Polling is trolling!

    Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Rootbob91“ ()