Ver Mensaje Individual
  #78  
Antiguo 29-11-2019
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.029
Reputación: 22
keys Va por buen camino
Yo no he conseguido enviarlo directamente como tu estas haciendo. Lo que hacemos es en el evento OnBeforeExecute generar otro fichero en BASE64 y enviarlo.

Código Delphi [-]
var
  ss:TFileStream;
  i : Integer;
  NficheroTemp : STring;
  ListaFichero : TStringList;
  Base64: TBase64Encoding;
  Salida : Ansistring;
begin

  //FIChero es el fichero original 
  NficheroTemp :=  Copy(Fichero, 1 , Length(Fichero) - 4) + 'TMP.XML';

  
  ListaFichero := TStringList.Create;
  ListaFichero.LoadFromFile(Fichero);
  Base64 := TBase64Encoding.Create;
  Salida := Base64.Encode(ListaFichero.Text);
  Base64.Destroy;
  ListaFichero.Clear;

  ListaFichero.Add('');

  ListaFichero.Add('tb="https://ptbai.ticketbai.eus">');
  ListaFichero.Add('');
  ListaFichero.Add('');
  ListaFichero.Add('');
  ListaFichero.Add('');
  ListaFichero.Add('');
  ListaFichero.Add(salida);

  ListaFichero.Add('');
  ListaFichero.Add('');
  ListaFichero.Add('');
  ListaFichero.Add('');

  if FileExists(NficheroTemp) then
   System.SysUtils.DeleteFile(NficheroTemp);

  ListaFichero.SaveToFile(NficheroTemp);
  ListaFichero.Destroy;


  SOAPRequest.Size := 0;
  ss := TFileStream.Create(NFicheroTemp, System.SysUtils.fmOpenRead);
  SOAPRequest.Position := 0;
  SOAPRequest.CopyFrom( ss, ss.Size);
  ss.Free;
  SOAPRequest.Position := 0;

  if FileExists(NficheroTemp) then
   System.SysUtils.DeleteFile(NficheroTemp);
Responder Con Cita