Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 在服务器上加载位图失败_Delphi_Bitmap_Firemonkey_Datasnap_Delphi 10.1 Berlin - Fatal编程技术网

Delphi 在服务器上加载位图失败

Delphi 在服务器上加载位图失败,delphi,bitmap,firemonkey,datasnap,delphi-10.1-berlin,Delphi,Bitmap,Firemonkey,Datasnap,Delphi 10.1 Berlin,将进程从XE8迁移到Berlin 10.1时遇到问题 在XE8上,它工作正常 在柏林,我得到一个“加载位图失败”错误 我有一个使用此方法的DataSnap REST服务器: function TSM.Downloafile(): TStream; var s: TFileStream; begin s := TFileStream.Create('C:\image1.jpg', fmOpenReadWrite); Result := s; end; 在XE8上,我可以很好地获得流,

将进程从XE8迁移到Berlin 10.1时遇到问题

在XE8上,它工作正常

在柏林,我得到一个“加载位图失败”错误

我有一个使用此方法的DataSnap REST服务器:

function TSM.Downloafile(): TStream;
var
  s: TFileStream;
begin
  s := TFileStream.Create('C:\image1.jpg', fmOpenReadWrite);
  Result := s;
end;
在XE8上,我可以很好地获得流,我可以在浏览器中使用URL查看图像,如:

在柏林,当我尝试显示图像时,我得到了以下字符串:

[122216255244,0,15,…]


然后加载位图失败。

当您说DataSnap REST server时,我猜接下来是TSM.Downloafile():TStream;不是来自主线程的调用。位图不是多线程的,只能从主线程使用

我已经在URL中使用?json=false解决了这个问题,谢谢

作为旁注,如果你不打算写,没有理由使用
fmOpenReadWrite
。在某些环境中,如果您没有对给定文件夹的写入权限,此操作甚至可能失败。此外,考虑到您所说的是从浏览器访问的REST服务器,我怀疑这与Firemonkey有关。我建议将您的问题改为关注REST服务器返回意外格式的事实。至于您的实际问题,我们无法看到足够的相关代码。您在哪里处理请求/响应?对于
ContentType
,您传递了什么?进一步说,没有局部变量s的点,直接分配给结果我没有设置ContentType,正如我在XE8上所说的工作正常我可以看到图像,问题在Berlin,流返回一个字符串,如[122216255244,0,15,…],并且该代码在XE8上工作正常,问题在于Berlin返回类似[122216255244,0,15,…]的字符串并失败