Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по Web серверу? [D7, Win2k]


r9000 ©   (2004-05-12 11:29:00) 

Добрый день!

Создал Web сервер используя ISAPI/NSAPI DLL на основе компонентов Delphi.
В действии при нажатии кнопки у меня файл записанный в таблицу базы данных отсылается веб-браузеру так:
  Bm2:=TMemoryStream.Create;
  TBlobField(AdoQuery3.FieldByName('sod_doc')).SaveToStream(Bm2);
  Bm2.Position:=0;
  Response.ContentStream:=Bm2;
  delete(sdoc,1,1);  // в переменной sdoc содержится расширение файла отправляемого в браузер
   Response.ContentType:=sdoc;
  Response.SendResponse;

При этом в браузере возникает запрос: открыть этот файл из текущего места или сохранить этот файл на диске. У меня возник такой вопрос, что нужно сделать, чтобы для пункта сохранить этот
файл на диске в диалоговое окно сохранить как в имени файла было название temp и добавлялось расширение скажем doc(т.е. temp.doc), а не приходилось бы вручную добавлять расширение и изменять имя файла, а для пункта открыть этот файл из текущего места, не вручную бы выбиралась программа,с помощью которой можно открыть файл, а сразу бы открывался файл по полному имени и расширении файла.


r9000   (2004-05-13 07:43:00) [1]

А что в данном случае обозначает application? Не могли бы вы привести список значений Response.ContentType для прграмм Excel,
IE,Power point,Notepad,Acrobat reader, jpeg,bmp, пожалуйста, а то я в справочной литературе не нашел. И почему-то открывается файл нормально, а когда я пытаюсь по второму пункту диалога сохранить файл с типом Response.ContentType:='temp/vnd.ms-word' на диске то он не передает в диалоговое окно ни расширение файл .doc ни имени файла.


Palladin   (2004-05-13 00:05:00) [2]

Нужно сразу в Response.ContentType указывать, что же есть возвращаемый результат...
к примеру Ваш несчастный док файл, перед отправкой должен установить
Response.ContentType:='application/vnd.ms-word';


r9000   (2004-05-12 13:08:00) [3]

Да возможно вы правы, что браузер берет имя файла из ссылки, но
вопрос остается, как передать имя файла и расширение вместе с самим файлом не создавая файлов непосредственно из таблицы базы?


wal   (2004-05-12 12:19:00) [4]

Если я не ошибаюсь, то браузер берет имя файла из ссылки. Соответственно ссылку на сделай что-то вроде
<a href="www.aaa.bbb/path/test_isapi.dll/test.doc">.
Писано из головы, если не прав, прошу сильно не пинать.


Наверх

Титульная страница Поиск, карта сайта Написать письмо