從Delphi REST伺服器返回影象並顯示在瀏覽器中
阿新 • • 發佈:2019-01-03
當你使用檔案流物件從Delphi的REST伺服器返回影象時,它不會正常顯示在瀏覽器中,如下例:
function TServerClass.Image: TFileStream;
begin
Result := TFileStream.Create('pathtofile\image.png', fmOpenRead or fmShareDenyNone);
end;
這是因為Delphi REST伺服器總是將返回內容的型別設定為text/html,這就導致你返回其它型別時瀏覽器不能加以區分,這是一個bug,因為大多數的返回內容為json,這就意味著返回內容的型別應該為applicatilon/json。所幸在伺服器方法中我們可以改寫返回內容的型別。
為此你需要引用"Data.DBXPlatform"
function TServerClass.Image: TFileStream; begin Result := TFileStream.Create('pathtofile\image.png', fmOpenRead or fmShareDenyNone); GetInvocationMetadata.ResponseContentType := 'image/png'; end;
現在,返回的影象就可以在瀏覽器中正常顯示了。