Конференция "Сети" » Пересылка файла в серверном cgi приложении [D7, WinXP]
 
  • Nyafkin © (06.02.12 05:05) [0]
    Доброго времени суток!
    Имеем MsMsql базу, в ней таблица с файлами в двоичном виде.
    Передаю запрошенный файл клиенту, используя код:

    readers.SQL.Clear;
    readers.SQL.Add('запрос');
    readers.Open;
    readers.First;
    Blob:=TADOBlobStream.Create(TBlobField(table1.FieldByName('ITEM')),bmRead);
    if table1.FieldByName('TYP').AsString='pdf' then Response.ContentType:='application/pdf';
    if table1.FieldByName('TYP').AsString='doc' then Response.ContentType:='application/doc';

    Response.ContentStream:=Blob;
    Response.SendResponse;



    Всё передаётся, но, если файл pdf, он открывается в браузере, окей, подходит, в случае же с doc'ом, предлагается его сохранить, вопрос в имени файла на стороне клиента. Как его задать программно? Подставляется, как я понял WebModule1.actions[3].Pathinfo , то есть адрес подпрограммы, относительно модуля программы, по-сути
  • ~AQUARIUS~ (07.02.12 20:49) [1]
    Можно задать http-заголовком Content-Disposition:
    http://en.wikipedia.org/wiki/MIME#Content-Disposition
  • Nyafkin © (09.02.12 03:42) [2]
    спасибо, уже выкрутился, обозвав WebModule1.actions[3].Pathinfo в нечто типа "file.doc". Если пдф, открывает, как прежде, в браузере, док предлагает сохранить, с расширением ;) Первый опыт так сказать, серверного программирования, стараюсь исключительно на практике познавать, а потом уже читать, как правильно
  • Anatoly Podgoretsky © (09.02.12 11:44) [3]
    Значит браузер так настроен, что файлы doc разрешено только сохранять, а не открывать.
 
Конференция "Сети" » Пересылка файла в серверном cgi приложении [D7, WinXP]
Есть новые Нет новых   [134435   +13][b:0][p:0.001]