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. Но при добавлении возникает исключение, заголовок пишется дважды.

1 ответ

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

  AResponseInfo.ContentType := 'image/jpeg';
  AResponseInfo.ServeFile(AContext,rootpath+ARequestInfo.document);
Другие вопросы по тегам