Rest Delphi Xe10 Datasnap:图像函数发送不工作
我的发送功能有问题。我的程序在Xe8中正常工作,但升级到Xe10后,我遇到了一个问题:加密 我已经创建了一个简单的项目datasnap,只使用了类似的bug功能Rest Delphi Xe10 Datasnap:图像函数发送不工作,rest,delphi,jpeg,datasnap,delphi-10-seattle,Rest,Delphi,Jpeg,Datasnap,Delphi 10 Seattle,我的发送功能有问题。我的程序在Xe8中正常工作,但升级到Xe10后,我遇到了一个问题:加密 我已经创建了一个简单的项目datasnap,只使用了类似的bug功能 procedure TServerMethods1.test3; VAR a : string; begin a := LoadFileToStr('C:\demo\Bitmaps\Mazak_Matrix.JPG'); GetInvocationMetadata.ResponseContentType := 'im
procedure TServerMethods1.test3;
VAR
a : string;
begin
a := LoadFileToStr('C:\demo\Bitmaps\Mazak_Matrix.JPG');
GetInvocationMetadata.ResponseContentType := 'image/jpeg';
GetInvocationMetadata.ResponseCode := 200;
GetInvocationMetadata().ResponseContent := a;
GetInvocationMetaData.CloseSession := True;
end;
函数LoadFileToStr
function LoadFileToStr(const FileName: string): AnsiString;
var
FileStream : TFileStream;
begin
FileStream:= TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
if FileStream.Size>0 then
begin
SetLength(Result, FileStream.Size);
FileStream.Read(Pointer(Result)^, FileStream.Size);
end;
finally
FileStream.Free;
end;
end;
事实上,数据是正确的,直到
GetInvocationMetadata().ResponseContent := a;
responseContent会破坏数据,就像您在hex编辑器上看到的那样。举个例子。整个文件没有损坏,只有几个字符
原画
通过服务器发送后
有人遇到了相同的错误?如果直接去一条有效的溪流,但我对此不感兴趣
谢谢 也有同样的问题。试试这样的
procedure TAPI.GetFile(UID: string);
var
LFS: TFileStream;
I: Integer;
LByte: Byte;
begin
try
LFS := TFileStream.Create('e:\image.jpg', fmOpenRead);
for I := 0 to Pred(LFS.Size) do
begin
LFS.Read(LByte, 1);
GetInvocationmetaData.ResponseContent := GetInvocationmetaData.ResponseContent + Char(LByte);
end;
GetInvocationmetaData.ResponseContentType := 'image/jpeg';
finally
LFS.Free;
end;
end;
二进制数据不是字符串,请将其视为字符串。