Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-11-2018
jrojasmcfia jrojasmcfia is offline
Miembro
 
Registrado: feb 2018
Posts: 18
Poder: 0
jrojasmcfia Va por buen camino
Envio de Foto a API PHP

Hola estoy tratando en mi aplicacion Android enviar varios datos a un sitio php para que escriba en una base de datos, para los campos texto ya lo logre sin embargo no he podido pasar una imagen, entendo que esta al pasarse como parametro debe ser un string para lo cual transforme la imagen en un String de la siguiente manera

Código Delphi [-]
stream.LoadFromFile(ruta);
SS:=TStringStream.Create('');
S.CopyFrom(Stream, 0);
y luego indico en un servicio rest lo siguiente
restclient1.BaseURL := 'http://www.mipagina.com/Imagenes/icosecha.php?fecha=' + efecha + '&cantidad=' + FloatToStr(spinbox1.value) + '&imagen=' + SS.DataString;

el URL lo llama bien, sin embargo no se como convertir desde la pagina php el string que le envie de la imagen para que me lo guarde en un campo blob de la base de datos. Alguien que haya tenido el mismo inconveniente

Última edición por Casimiro Notevi fecha: 06-11-2018 a las 09:39:04.
Responder Con Cita
  #2  
Antiguo 06-11-2018
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Podrías codificar en Base64 la imagen que quieres enviar, puesto que, ya en PHP, no tendrás problemas en utilizar dicha cadena Base64, guardarla en un archivo, y, a continuación, en una base de datos. Sin embargo, una petición HTTP GET, es decir, usar la URL para enviar una cadena en Base64, puede ser algo problemático, cuando no imposible, debido a los límites que se puedan imponer a los argumentos que pueden enviarse y hasta recibirse usando la URL en una petición HTTP GET.

Lo anterior quiere decir que tal vez deberías usar HTTP POST, y, haciéndolo así, intentar averiguar si puedes ir más allá y enviar, mediante HTTP POST, directamente, el archivo, no su representación en Base64. PHP no tiene problemas en recibir archivos "tal cual", a los que podrás acceder usando la variable "$_FILES" de PHP. Para hacer esto habría que ver si el componente "REST" que usas permite enviar archivos de este modo, pero, en principio, debería poder, o bien podrías sustituirlo por un "IdHttp", que, permite enviar archivos, directamente, sin pasar por Base64.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 06-11-2018
jrojasmcfia jrojasmcfia is offline
Miembro
 
Registrado: feb 2018
Posts: 18
Poder: 0
jrojasmcfia Va por buen camino
Ok, gracias Dec, si he visto algunos post donde usan idhttp, sin embargo me queda la duda de como hago para que el mismo insert que utilizo en la página php para ingresar los otros parámetros (como cantidad y fecha) que ya tengo, reciba e ingrese también la imágen usando el método idhttp.
Responder Con Cita
  #4  
Antiguo 06-11-2018
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

En principio, no es complicado, es decir, se trata de usar las variables "super globales" de PHP: $_GET, $_POST y $_FILES. Una llamada HTTP POST puede incluir datos de entrada que se encontrarán en la variable $_POST, y, también archivos, que se encontrarán en la variable $_FILES. Piensa en un formulario HTML... que permite enviar varios campos, además de archivos, en una sola llamada HTTP POST.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 07-11-2018
jrojasmcfia jrojasmcfia is offline
Miembro
 
Registrado: feb 2018
Posts: 18
Poder: 0
jrojasmcfia Va por buen camino
Hola Dec, he estado investigado lo que indicas y generè el siguiente código de un post que me encontre en el clubdelphi, sin embargo el URL donde requiero enviar es https, para lo cual utilizo el componente TIdSSLIOHandlerSocketOPenSSL,como lo indico en el código, pero a la hora de correrlo en mi movil me da error "Could not load SSL library", tienes alguna idea.

Código Delphi [-]
procedure TForm3.enviohttp;
var
  https: TIdHttp;
  params: TStrings;
  respuesta: string;
  idssl: TIdSSLIOHandlerSocketOPenSSL;
begin

   https := TIdHTTP.Create(Self);
   idssl := TIdSSLIOHandlerSocketOpenSSl.Create(nil);
   params := TStringList.Create;
  try
    HTTPs.ReadTimeout := 30000;
    IdSSL.SSLOptions.Mode := sslmClient;
    IdSSL.SSLOptions.Method := sslvSSLv23;
    HTTPs.IOHandler :=idssl;

    //IdSSL.SSLOptions.Mode := sslmUnassigned;
    params.Add('variable1=valor1');
    params.Add('variable2=valor2');
    respuesta := https.Post('https://www.mipagina.com/Imagenes/pruebas-post.php', params);
    ShowMessage('Respuesta: ' + respuesta);
  finally
    https.Free;
    params.Free;
  end;
end;

Última edición por Casimiro Notevi fecha: 07-11-2018 a las 21:04:43.
Responder Con Cita
  #6  
Antiguo 07-11-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.020
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No olvides usar las etiquetas cuando pongas código.

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Guardar Foto DamianG FireMonkey 4 25-03-2018 16:42:24
Tu foto yusnerqui La Taberna 767 22-03-2012 06:05:21
poner foto en el centro de otra foto kapullok_2006 Gráficos 1 22-10-2007 18:52:10
architect dvd 3.0 entre foto y foto tulajvs Gráficos 2 06-11-2006 11:11:02
entre foto y foto, architect dvd 3.0 tulajvs Varios 2 05-09-2006 16:03:48


La franja horaria es GMT +2. Ahora son las 10:58:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi