我编写了一个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 函数的调用。但是当添加它时会引发一个例外,即标题被写入两次。
答案 0 :(得分:3)
实际上发现了这个问题。需要指定内容类型 BEFORE ServeFile调用。
AResponseInfo.ContentType := 'image/jpeg';
AResponseInfo.ServeFile(AContext,rootpath+ARequestInfo.document);