Экспорт Rtf-файла оставляет первую строку пустой

Я просто пытаюсь сделать .РТФ файл с простым следующим содержанием («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;

0

Решение

Важно, чтобы у вас не было пустых строк <?php в начале строки или в некоторых других файлах, которые включены (например, после ?>).

2

Другие решения

Я использовал рамки codeigniter. На контроллере я загрузил модель с пустыми строками после ?> закрывающий тег. После удаления это работает нормально. Причина, по которой простой эхо текста добавляет пробел перед выводом, заключается в том, что просмотрщик файлов RTF ожидал подходящего кодирование контента быть упомянутым в первой строке. Таким образом, вывод должен начинаться как {\ Rtf1 \} ANSI этот. Убедитесь, что другие тексты или пробелы не вставлены ранее.

0

Я использовал

    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;
0
По вопросам рекламы [email protected]