Формирование rtf из шаблона с данными из базы

icms2 пример

#16 17 ноября 2015 в 06:17
Я делал через аттачмент, все браузеры принудительно выдавали окошко с выбором, открыть в какой-то программе файл или сохранить на диске. При выборе "сохранить на диске" только мозила перезагружала страницу после нажатия на кнопку "ОК". Остальные браузеры только загружали файл и продолжали висеть с крутилкой процесса, до тех пор пока не обновлю страницу.
#17 17 ноября 2015 в 10:59

Остальные браузеры только загружали файл и продолжали висеть с крутилкой процесса, до тех пор пока не обновлю страницу.

Loadырь
Возможно им поболее header записать.

например
  1.  
  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');
  8. header('Pragma: public');
  9. header('Content-Length: ' . filesize($file));
  10.  
  11.  
С принудительным указанием размера файла можно. источник:
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст




Да еще одно существенное, rtf это галимый ASCII CP1251, т.е. все из UTF-8 надо конвертнуть.

рабочий кусок:
  1.  
  2. $filename = __DIR__.'/dogovor.rtf';
  3. //echo $filename;
  4. $output = file_get_contents($filename);
  5. // Заменить заполнители в шаблоне требуемыми данными
  6. $output = str_replace( '\{number\}', $dogovorf['id_dogovor'], $output );
  7. $output = str_replace( '\{date\}', $dogovorf['date'], $output );
  8. $output = str_replace( '\{fio\}', $abonentf['fio'].' '.$abonentf['imya'].' '. $abonentf['otchestvo'], $output );
  9. $output = str_replace( '<<mm/dd/yyyy>>', $date, $output );
  10. // Отправить сгенерированный документ в браузер
  11. $rtff=ltrim($output);
  12. $rtff=mb_convert_encoding($rtff,cp1251); //конвертим
  13. $fh = fopen ("/upload/dogovora/".$dogovorf['id_dogovor'].".rtf", "w+");//указать путь до папки хранения(полный)
  14. fwrite ($fh, $rtff);
  15. fclose ($fh);
  16.  
  17.  
  18.  
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.