parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Реально понадобился ^file::create[binary..]

crypto 15.04.2010 21:50 / 15.04.2010 22:16

Удобно вордовый документ сохранить как .mht по трем причинам:
1) Внутри содержится html/xml разметка и её можно поправить руками,программно
2) Графика там-же внутри в base64 формате
3) Для пущей красоты файл можно смело переименовать в .doc и отдавать с полным mime-type-ом что это MS Word - и ворд несмотря на расширение отлично его открывает, пользователь даже не в курсе что это .mht
#Если загрузить файл 
$fil[^file::load[binay;filename.doc]]
#И отдать - то все ок сохраненный файл 1:1 и все открывается
$response:download[$fil]

# но если попробовать сделать замену текста
# и потом отдать
$fil[^create[text;replaced_string;filename.doc]
$response:download[$fil]
# то все бьется
Очень и очень жаль... так как видимо это из-за специфичных переносов в base64 и/или еще каких-то символов. Внешне файл выглдять text-plain-новым но видимо это не так. Заметил, что в rtf также что-то по типу base64 только dec-овские значения. Стало быть и его не поменять.

А жаль... если в этом .mht, .rtf заранее руками проставить служебные теги типа
%NAME%, %SOMETHING% то можно было бы реплейсить по таблице подстановке и таким образом генерить вордовый документ не записывая ничего на диск и не обращаясь к сторонним вызовым утилит и скриптов. Хотел так реализовать генерацию бланков .doc с подставленными параметрами, ну чует сердце придется курить rtf который на парсере уж точно не вырулить...
:(

При том генерировать rtf с нуля - не вариант, там всякие картинки, таблицы, вообщем это уже другая песня...

P.S.: И ктати,
$txt[модифицированная строка]
$fil[^file::base64[^txt.base64[]]]
$response:download[$fil]

При таком конструкторе файла
почему то выставляются НЕ правильные HTTP заголовки на скачивание
файла и весь файл идет в "морду".