J'essaie juste de créer un fichier .rtf avec un contenu suivant simple ("eee"). Lorsque j'ouvre mon fichier, il a ajouté une ligne vierge avant ma sortie.

header("Content-Disposition: attachment;filename=test.rtf");
    echo 'eee'; die;

J'ai aussi essayé avec

header("Content-type: application/rtf; charset=utf-8");
header("Content-Disposition: attachment;filename=test.rtf");
echo 'eee'; die;

Mais toujours une ligne vierge ajoutée avant la sortie.

Lorsque j'essaie d'enregistrer en tant que fichier .txt , cela n'ajoute aucune ligne vide.

header("Content-Disposition: attachment;filename=test.txt");
echo 'eee'; die;
0
phpnerd 10 août 2017 à 09:29

2 réponses

Meilleure réponse

Il est important que vous n'ayez pas de lignes vides avant <?php au début d'une ligne ou à certains autres fichiers qui sont inclus (par exemple, après ?>).

2
MrTux 10 août 2017 à 11:51

J'utilisais

    ob_start('ob_gzhandler');
    ...
    if ($isDownload) {
      header("Content-type: text/rtf;  charset=UTF-8");
      header("Content-Disposition: attachment; filename=myfile.rtf");
      header("Expires: 0");
    }
    echo $rtf;

Je l'ai réparé par

    ob_start();
    ...
    if ($isDownload) {
      ob_clean()
      header("Content-type: text/rtf;  charset=UTF-8");
      header("Content-Disposition: attachment; filename=myfile.rtf");
      header("Expires: 0");
    }
    echo $rtf;
0
Steve 27 août 2018 à 08:28