Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2020
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Base64 IdDecoderMIME a zip

Hola amigos del foro, estoy obteniendo unos datos de un webservice por medio de un archivo Json, en el se encuentra codificado un archivo pdf, un xml y un zip

para obtener el pdf utilizo el siguiente procedimiento


Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
  decode: TIdDecoderMIME;
  stream: TMemoryStream;
begin  
  Memo4.Text := RESTResponse2.JSONValue.ToJSON;

  ParseJSON(RESTResponse2.JSONValue as TJSONObject);

  // ---------------- se crea pdf ----------------
  decode := TIdDecoderMIME.Create(nil);
  stream := TMemoryStream.Create;

  decode.DecodeStream(Memo2.Text, stream);

  stream.SaveToFile('documento.pdf');
  FreeAndNil(decode);
  FreeAndNil(stream);  

end;

estos archivos vienen codificados en base64.
Lo que no he podido es obtener el archivo zip

Gracias por su tiempo

Gustavo Cruz
Responder Con Cita
  #2  
Antiguo 07-11-2020
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,

¿Obtienes algún error? Quiero decir, si puedes decodificar el archivo PDF... a bote pronto no parece haber diferencia para hacer lo propio con el archivo zip...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 07-11-2020
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Hola dec, con el archivo pdf no hay ningún error, y creí que sería lo mismo con el zip; simplemente escribir 'd:\archivo.zip', el problema surge es con el archivo zip, cuando lo voy abrir me dice que el archivo tiene un formato desconocido o está dañado
Responder Con Cita
  #4  
Antiguo 07-11-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y el código?
Responder Con Cita
  #5  
Antiguo 08-11-2020
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Hola Casimiro Notevi, quise utilizar el mismo código que para el archivo en pdf, he estado buscado en los foros para ver si había alguna solución utilizando TIdDecoderMIME, pero no he encontrado nada

Gracias por tu tiempo
Responder Con Cita
  #6  
Antiguo 08-11-2020
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Hola esto es parte de un código para tratar el mismo problema que tengo. está en php
Código PHP:
$filename=$response['document']['number'].'.zip';
        
$data base64_decode($response['document']['zipBase64Bytes']);
        
header("Cache-Control: public");
        
header("Content-Description: File Transfer");
        
header("Content-Disposition: attachment; filename=$filename");
        
header('Content-Type: application/zip');
        return  
$data
yo necesito hacer eso mismo pero con delphi, actualmente estoy utilizando IdDecoderMIME o si hay alguna otra mejor opción.
Esto lo recibo como respuesta de un webservice en un archivo json
Responder Con Cita
  #7  
Antiguo 08-11-2020
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,

Iba a decirte de probar con PHP, precisamente, para comprobar que el Base64 en cuestión realmente contiene un archivo Zip válido. Es de suponer que sí, de modo que, buscando un poco por internet, me topo con esta pregunta / respuesta en Stackoverflow, donde tratan cómo convertir una cadena Base64 en un archivo binario: yo creo que podrías utilizar la respuesta, puesto que además no hace uso del "TIDEDecoderMime", que, aunque parezca raro, acaso pueda funcionar con unos archivos y no con otros (?):

https://stackoverflow.com/questions/...-binary-delphi

También en este nuestro foro podemos ver algunas soluciones para lidiar con Base64, por ejemplo, en este par de hilos:

https://www.clubdelphi.com/foros/showthread.php?t=48924

https://www.clubdelphi.com/foros/showthread.php?t=52059
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 08-11-2020 a las 19:17:58.
Responder Con Cita
  #8  
Antiguo 08-11-2020
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Gracias dec, ya pruebo y te cuento cómo me va
Responder Con Cita
  #9  
Antiguo 08-11-2020
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
hola amigos del foro, gracias por su ayuda y tiempo...

ya solucioné el problema y quedó como sigue

Código Delphi [-]
streamzip := TBytesStream.Create(DecodeBase64(xmlzip.Text));
  try
    streamzip.SaveToFile('d:\_xmlzip.zip');
  finally
    streamzip.Free;
  end;

utilicé la solución que se halla en https://stackoverflow.com/questions/...-binary-delphi
Responder Con Cita
  #10  
Antiguo 10-11-2020
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
Thumbs up

Gracias por compartir la solución

Saludos
Responder Con Cita
Respuesta



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
Cargar una Imagen base64 en un Timage darkamerico Gráficos 7 25-10-2020 01:04:29
Leer imagen y convertir su contenido a base64 Ramsay Varios 16 18-05-2018 20:37:04
Mostrar imagen que viene en Base64 jars Gráficos 7 25-06-2012 09:42:57
Webservice regresa PDF como string en base64 beemot Internet 3 05-07-2010 12:11:58


La franja horaria es GMT +2. Ahora son las 21:38:35.


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