powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / отправить rtf клиенту
9 сообщений из 9, страница 1 из 1
отправить rtf клиенту
    #34076565
Dimon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Беру на сервере шаблон формата rtf, читаю в строку и набиваю данными из бызы.

Теперь нужно эту строку передать клиенту, да так, что-б при нажании на ссылочку у него появлялось окошечко (открыть/сохранить файл "Договор.rtf").

Как это сделать? Какую служебную информацию отправлять и в каком виде?
Главное - идея!
...
Рейтинг: 0 / 0
отправить rtf клиенту
    #34076710
RadioShark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так:
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/vnd.ms-word";
Response.AddHeader("Content-Disposition", "attachment; filename=bill.doc");
Response.OutputStream.Write(od.fileContent, 0, od.fileContent.Length);
Response.Flush();
Response.Close();



--
С уважением,
Алексей К.
...
Рейтинг: 0 / 0
отправить rtf клиенту
    #34077621
Dimon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так:
                Response.ClearContent();
                Response.ClearHeaders();
                Response.ContentType = "application/vnd.ms-word";
                Response.AddHeader("Content-Disposition", "attachment; filename=bill.doc");
                Response.OutputStream.Write(od.fileContent, 0, od.fileContent.Length);
                Response.Flush();
                Response.Close();






А что такое "od"?
Хотелось-бы поподробнее...



Главное - идея!
...
Рейтинг: 0 / 0
отправить rtf клиенту
    #34078414
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
od.FileContent - это видимо byte[], содержащий файл.

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
отправить rtf клиенту
    #34078494
Dimon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
od.FileContent - это видимо byte[], содержащий файл.

Эммм... Так значит перед тем как передать заполненный текст, его обязательно нужно сохранить обратно в файл? А без этого можно? Что-б шаблон оставался шаблоном, а сформированный документ из памяти отправлялся сразу клиенту?

типа:
1. прочитали содержимое файла doc.rtf в строку (или куда там еще можно)
2. Пропарсили ее (строку) и добавили в нее необходимые данные
3. Отправили эту строку клиенту (респонсом или еще как)

Особое внимание хочу обратить на третий пункт. Что конкретно слать ДО и ПОСЛЕ отправки строки?

Буду очень признателен за пример из жизни

Главное - идея!
...
Рейтинг: 0 / 0
отправить rtf клиенту
    #34078685
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
До Response.Write(str) нужно установить хидеры, а после - вызвать Response.End()

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
отправить rtf клиенту
    #34080087
Dimon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
До Response.Write(str) нужно установить хидеры, а после - вызвать Response.End()


Не силен я пока в хедерах. Попробовал так - все вываливается на экран браузера, как в блокноте:

Response.ClearHeaders();
Response.ContentType = "Application/msword";

StreamReader sr = File.OpenText(Request.PhysicalApplicationPath + "doc.rtf");
string input = null;
while ((input = sr.ReadLine()) != null) Response.Write(input);
sr.Close();

Response.End();

Главное - идея!
...
Рейтинг: 0 / 0
отправить rtf клиенту
    #34080998
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну а Content-Disposition где?

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
отправить rtf клиенту
    #34093724
Dimon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а Content-Disposition где?


Спасибо! Более-менее разобрался.
Предыдущий пример заработал после того, как нажал на кнопочку перехода (до этого жал F5
)
Итак, что получилось:

Response.ClearHeaders(); // Очищаем заголовки
Response.ContentType = "Application/msword"; // Содержимое - документ MS WORD
Response.Charset = "UTF-8"; // Кодировка - UTF-8
Response.AppendHeader("Content-Disposition", "attachment; filename=doc.rtf"); // Полученный файл будет открываться или сохраняться под именем "doc.rtf"

StreamReader sr = File.OpenText(Request.PhysicalApplicationPath + "doc.rtf");// Считываем файл-шаблон doc.rtf из корня нашего web-приложения
StringBuilder myStr = new StringBuilder(sr.ReadToEnd());// в StringBuilder (хотя вроде можно и в строку)
sr.Close();// Закрываем поток
...
Response.Write(myStr.ToString()); // В самом простом варианте выводим все содержимое StringBuilder-а.
//Разумеется, в моей задаче выводить нужно все, кроме управляющих конструкций, плюс, значения из базы данных.
...
Response.End();// Завершаем отправку клиенту.


На этом вопрос данной темы закрыт. Идем к следующей проблеме: борьба с кодировками.

Главное - идея!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / отправить rtf клиенту
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]