Hola, tengo un problema muy parecido, simplemente que mis imágenes están en un servidor interno no en un servidor web. Uso XE7.
Tengo un servidor Datasnap que accesa a la base de datos y a los archivos JPG, y unos clientes Windows y Android, el asunto funciona en Windows pero no en Android, estoy usando un TJSONArray para traer la imagen pero en el dispositivo Android el Stream llega = nil.
Aquí el código del servidor Datasnap
Código Delphi
[-]
function TServerMethGeneral.GetImagen(ArchivoImagen: string): TJSONArray;
var
AArchStream: TMemoryStream;
begin
Result := nil;
AArchStream := TMemoryStream.Create;
if FileExists(ArchivoImagen) then
begin
AArchStream.LoadFromFile(ArchivoImagen);
AArchStream.Seek(0, 0);
Result := TDBXJSONTools.StreamToJSON(AArchStream, 0, AArchStream.Size);
end
else
showmessage('NO se encontró el archivo de imagen: '+ArchivoImagen);
end;
y éste el método de la aplicación cliente, que utiliza un componente TSqlServerMethod (SqlSrvMethGetImagen) para enlazarse
Código Delphi
[-]
var
RutaImg: string;
AArchJSON: TJSONArray;
AArchStrem: TStream;
begin
AArchStrem := TStream.Create;
RutaImg := 'C:\Imagenes\IMG_5671.jpg';
SqlSrvMethGetImagen.ParamByName('ArchivoImagen').AsWideString := RutaImg;
SqlSrvMethGetImagen.ExecuteMethod;
AArchJSON := (SqlSrvMethGetImagen.ParamByName('ReturnParameter').AsObject) as TJSONArray;
if AArchJSON = nil then
ShowMessage('NO encontró la imagen: ' + RutaImg)
else
begin
AArchStrem := TDBXJSONTools.JSONToStream(AArchJSON);
AArchStrem.Seek(0, 0);
Image1.Bitmap.LoadFromStream(AArchStrem);
end;
O me estoy complicando y la solución es por otro lado ...?
Gracias,
GustavoSV