未设置Indy TIdHTTPResponseInfo.ContentType

时间:2013-05-29 14:04:42

标签: delphi indy indy10

我编写了一个TIdHTTPServer Web服务器。 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 方法,并且都生成了text / html。

我还有另一个电话吗?我在其他线程中看到了对 AResponseInfo.WriteHeader 函数的调用。但是当添加它时会引发一个例外,即标题被写入两次。

1 个答案:

答案 0 :(得分:3)

实际上发现了这个问题。需要指定内容类型 BEFORE ServeFile调用。

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