Indy TIdHTTPResponseInfo.ContentType не установлен

Я написал веб-сервер TIdHTTPServer. Версия Indy — 10, Delphi — 2007.

Я использую следующий код для отправки обратно файлов jpeg, gif, png и т. д.:

      AResponseInfo.ServeFile(AContext,rootpath+ARequestInfo.document);
      AResponseInfo.ContentType := 'image/jpeg';
      AResponseInfo.ContentType := GetMimeTypeFromFile('.'+ExtractFileDir(rootpath+ARequestInfo.document));

Изображения корректно отображаются во всех браузерах. Но я вижу (через консоль в Chrome), что они возвращаются как тип MIME: text/html. Я пробовал оба метода image/jpeg и GetMIMTypeFromFile, и оба выдают текст/html.

Есть ли еще один звонок, который я должен сделать? Я видел в других потоках вызовы функции AResponseInfo.WriteHeader. Но при добавлении возникает исключение, заголовок записывается дважды.


person M Schenkel    schedule 29.05.2013    source источник


Ответы (1)


Собственно нашел проблему. Необходимо указать тип содержимого ДО вызова ServeFile.

  AResponseInfo.ContentType := 'image/jpeg';
  AResponseInfo.ServeFile(AContext,rootpath+ARequestInfo.document);
person M Schenkel    schedule 29.05.2013