Ir al contenido


Foto

Enivar imagen REST Service


  • Por favor identifícate para responder
9 respuestas en este tema

#1 edorantes

edorantes

    Advanced Member

  • Miembros
  • PipPipPip
  • 78 mensajes

Escrito 11 febrero 2015 - 12:55

Saludos nuevamente
Amigos ¿Como enviar una imagen a un REST Service desde android?
El cliente tiene un servicio REST PHP bueno pues ya he logrado la conexión y con el RESTClient
y como algunos reciben parametros en get lo mando asi:
RESTClient1.BaseURL := 'http://serviciodelcliente.php?' + 'parametro=' + edit.Text+'&parametro=' + edit.Text;
y hasta ahora funciona bien pero me he encotrado que se requiere subir imagenes pero eso no se como se
envian desde el RESTClient espero sus respuestas.
  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 11 febrero 2015 - 01:46

para envair imágenes puedes hacer uso de uuencode y enviarla como parámetro al servicio.
  • 0

#3 edorantes

edorantes

    Advanced Member

  • Miembros
  • PipPipPip
  • 78 mensajes

Escrito 13 febrero 2015 - 11:54

De acuerdo investigare hacerca de eso, si tienen algun tutorial o documentación se las agradeceria
  • 0

#4 edorantes

edorantes

    Advanced Member

  • Miembros
  • PipPipPip
  • 78 mensajes

Escrito 17 febrero 2015 - 07:24

Amigos he investigado y recorde que hace tiempo trabaje con archivos de imagen codificados en base64 asi es que
lo que hize fue codificar una imagen en base64 desde android y mandarla por get a mi REST php
el problema es al hacer la codificación desde android se tarda mucho hasta cerrar la aplicación
entonces pense en una solucion que no se como implementar bueno las imagenes se van a almacenar en una carpeta en un
servidor asi es que la pregunta es ¿Como subir una imagen a un servidor desde delphi?
Agradezco sus respuestas
  • 0

#5 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 mensajes
  • LocationCali, Colombia

Escrito 19 febrero 2015 - 08:11

Hola

Una solución no por REST, es enviándolo por POST y utilizando en el cliente un Tidhttp.



delphi
  1. procedure TForm9.Mifuncion(Bm : TBitMap);
  2. Var
  3.   Stream : TMemoryStream;
  4.   url : String;
  5.   Res : String;
  6.   IdHttp : TIdHTTP;
  7. begin
  8.   IdHttp := TIdHTTP.Create(Nil);
  9.   Stream := TMemoryStream.Create;
  10.   Url := 'http://www.mipagina.com/miformulario.php';
  11.  
  12.   Stream.LoadFromFile('miimagen.bmp'); //Forma #1 de obtener la imagen
  13.   Bm.SaveToStream(Stream);//Forma #2 de obtener la imagen (solo una de las dos)
  14.  
  15.   Stream.Position := 0;
  16.  
  17.   Res := IdHttp1.Post(URL, Stream); //Puedes revisar la variable Res para ver si se ejecutó correctamente
  18. end;



Hay un tema que aún no entiendo en FireMonkey y es la codificación de las imágenes y cuando se pasan a Stream, ya que a pesar que se crea una variable de tipo TBitMap, esta acepta casi todos los formatos y tiene una codificación que probablemente no entienda php como bitmap.

De hecho eso pasa cuando utilizamos una variable Bitmap en la VCL y tratamos de leer una imagen Bitmap de Firemonkey.

En resumen, esta es la forma de enviar un archivo a un servidor, pero no he trabajado lo suficiente para garantizarte si lo que recibes en PHP es compatible con un Bitmap estándar que pueda interpretar PHP.

Saludos.

  • 0

#6 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 mensajes
  • LocationCali, Colombia

Escrito 19 febrero 2015 - 08:20

Actualización.

La forma correcta de convertir un TBitMap de FireMonkey a un BitMap estándar o a otro formato que pueda interpretar PHP, es la siguiente.




delphi
  1. var
  2.   Surf: TBitmapSurface;
  3.   Stream: TMemoryStream;
  4.   saveParams : PBitmapCodecSaveParams ;
  5. begin
  6.   Surf := TBitmapSurface.Create;
  7.   Surf.Assign(imgCameraView.Bitmap);
  8.   Stream := TMemoryStream.Create;
  9.   try
  10.     TBitmapCodecManager.savetostream(Stream, Surf, '.jpg');
  11.  
  12. //Aquí ya se tiene el stream para enviar a PHP en formato jpg.



no lo he probado con PHP, pero creo que debe funcionar.

Saludos.
  • 0

#7 edorantes

edorantes

    Advanced Member

  • Miembros
  • PipPipPip
  • 78 mensajes

Escrito 23 febrero 2015 - 11:12

Excelente amigos, gracias lo resolvi con el TIdHTTP con el metodo que se llama POST
TidHTTP.POST()
  • 0

#8 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 23 febrero 2015 - 12:12

Gracias por retroalimentar la solución. :D
  • 0

#9 fanchondo

fanchondo

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 04 agosto 2020 - 09:35

Podrias compartir el codigo PHP donde recibes la imagen?, saludos!!!!!!!!!!!!!!!


  • 0

#10 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.446 mensajes
  • LocationMéxico

Escrito 04 agosto 2020 - 10:10

Podrias compartir el codigo PHP donde recibes la imagen?, saludos!!!!!!!!!!!!!!!

 

Hola fanchondo

 

Bienvenido a DelphiAccess, espero que ésto lo haya hecho alguien con PHP, porque veo que es con Delphi. Aquí hay varios compañeros que saben PHP.

 

Saludos


  • 1




IP.Board spam blocked by CleanTalk.