Я просто пытаюсь сделать .РТФ файл с простым следующим содержанием («eee»). Когда я открываю свой файл, он добавляет одну пустую строку перед моим выводом.
header("Content-Disposition: attachment;filename=test.rtf");
echo 'eee'; die;
Я тоже пробовал с
header("Content-type: application/rtf; charset=utf-8");
header("Content-Disposition: attachment;filename=test.rtf");
echo 'eee'; die;
Но по-прежнему добавляется пустая строка перед выводом.
Когда я пытаюсь сохранить как .текст файл не добавляет ни одной пустой строки.
header("Content-Disposition: attachment;filename=test.txt");
echo 'eee'; die;
Важно, чтобы у вас не было пустых строк <?php
в начале строки или в некоторых других файлах, которые включены (например, после ?>
).
Я использовал рамки codeigniter. На контроллере я загрузил модель с пустыми строками после ?> закрывающий тег. После удаления это работает нормально. Причина, по которой простой эхо текста добавляет пробел перед выводом, заключается в том, что просмотрщик файлов RTF ожидал подходящего кодирование контента быть упомянутым в первой строке. Таким образом, вывод должен начинаться как {\ Rtf1 \} ANSI этот. Убедитесь, что другие тексты или пробелы не вставлены ранее.
Я использовал
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;
Я исправил это
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;