【发布时间】:2016-02-09 15:46:22
【问题描述】:
我的发送功能有问题。我的程序在 Xe8 中正常运行,但升级到 Xe10 后,我遇到了一个问题:加密?
我已经创建了一个简单的项目数据快照,其中包含类似的窃听功能
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 会破坏数据,就像您在十六进制编辑器上看到的那样。一个例子。整个文件没有损坏,只有几个字符。
原图
服务器发送后
有人遇到过同样的错误吗?如果直接进入一个有效的流,但我不感兴趣。
谢谢!
【问题讨论】:
-
二进制数据不是字符串,这样处理。
标签: rest delphi jpeg datasnap delphi-10-seattle