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);