gpt4 book ai didi

delphi - 从 Delphi REST 服务器返回图像并将其显示在浏览器中

转载 作者:行者123 更新时间:2023-12-03 14:50:15 24 4
gpt4 key购买 nike

当您在 Delphi Rest 服务器中使用文件流对象返回图像时,它将不会在浏览器中显示。以下是返回图像的示例方法:

function TServerClass.Image: TFileStream;
begin
Result := TFileStream.Create('pathtofile\image.png', fmOpenRead or fmShareDenyNone);
end;

最佳答案

问题在于 Delphi REST 服务器始终将内容类型设置为 text/html。当您发送其他类型的内容时,这会使浏览器感到困惑。这是一个错误,因为大多数响应都是 json,这意味着最合理的默认内容类型应该是 application/json。

幸运的是,有一种方法可以从服务器方法中覆盖内容类型。

您需要将 Data.DBXPlatform 添加到您的实现的使用列表中。

该单元包含函数GetInvocationMetadata ,它可以访问正在构建的响应。它返回 TDSInvocationMetadata对象,其中各种其他有用的属性具有 ResponseContentType属性。

设置此属性会覆盖该方法在 http 响应中返回的 Content-Type header 。

给定的示例变为:

function TServerClass.Image: TFileStream;
begin
Result := TFileStream.Create('pathtofile\image.png', fmOpenRead or fmShareDenyNone);
GetInvocationMetadata.ResponseContentType := 'image/png';
end;

现在结果图像将在浏览器中正确显示。

关于delphi - 从 Delphi REST 服务器返回图像并将其显示在浏览器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13879238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com