Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Internet
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Colaboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 07/11/2020
GustavoCruz's Avatar
GustavoCruz GustavoCruz is offline
Miembro
 
Join Date: Jul 2006
Location: Sampués Sucre (Colombia)
Posts: 296
Poder: 21
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
Reply With Quote
  #2  
Old 07/11/2020
dec's Avatar
dec dec is offline
Moderador
 
Join Date: Dec 2004
Location: Alcobendas, Madrid, España
Posts: 13,142
Poder: 36
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
Reply With Quote
  #3  
Old 07/11/2020
GustavoCruz's Avatar
GustavoCruz GustavoCruz is offline
Miembro
 
Join Date: Jul 2006
Location: Sampués Sucre (Colombia)
Posts: 296
Poder: 21
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
Reply With Quote
  #4  
Old 07/11/2020
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Y el código?
Reply With Quote
  #5  
Old 08/11/2020
GustavoCruz's Avatar
GustavoCruz GustavoCruz is offline
Miembro
 
Join Date: Jul 2006
Location: Sampués Sucre (Colombia)
Posts: 296
Poder: 21
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
Reply With Quote
  #6  
Old 08/11/2020
GustavoCruz's Avatar
GustavoCruz GustavoCruz is offline
Miembro
 
Join Date: Jul 2006
Location: Sampués Sucre (Colombia)
Posts: 296
Poder: 21
GustavoCruz Va por buen camino
Hola esto es parte de un código para tratar el mismo problema que tengo. está en php
PHP Code:
$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
Reply With Quote
  #7  
Old 08/11/2020
dec's Avatar
dec dec is offline
Moderador
 
Join Date: Dec 2004
Location: Alcobendas, Madrid, España
Posts: 13,142
Poder: 36
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

Last edited by dec : 08/11/2020 at 19:17.
Reply With Quote
  #8  
Old 08/11/2020
GustavoCruz's Avatar
GustavoCruz GustavoCruz is offline
Miembro
 
Join Date: Jul 2006
Location: Sampués Sucre (Colombia)
Posts: 296
Poder: 21
GustavoCruz Va por buen camino
Gracias dec, ya pruebo y te cuento cómo me va
Reply With Quote
  #9  
Old 08/11/2020
GustavoCruz's Avatar
GustavoCruz GustavoCruz is offline
Miembro
 
Join Date: Jul 2006
Location: Sampués Sucre (Colombia)
Posts: 296
Poder: 21
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
Reply With Quote
  #10  
Old 10/11/2020
ElKurgan's Avatar
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Join Date: Nov 2005
Posts: 1,242
Poder: 22
ElKurgan Va camino a la fama
Thumbs up

Gracias por compartir la solución

Saludos
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Cargar una Imagen base64 en un Timage darkamerico Gráficos 7 25/10/2020 01:04
Leer imagen y convertir su contenido a base64 Ramsay Varios 16 18/05/2018 20:37
Mostrar imagen que viene en Base64 jars Gráficos 7 25/06/2012 09:42
Webservice regresa PDF como string en base64 beemot Internet 3 05/07/2010 12:11


All times are GMT +2. The time now is 21:10.


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