Einzelnen Beitrag anzeigen

Chaosworld

Registriert seit: 27. Nov 2005
6 Beiträge
 
#1

Datei einlesen und als Base64-String übertragen

  Alt 15. Aug 2008, 17:28
Ich muss über SOAP eine Datei übertragen. Sie wird in einen Widestring geschrieben und das Format soll Base64 sein.
Ich habe es so versucht:
die funktion LoadFile von hier:
Delphi-Quellcode:
function LoadFile(const FileName: TFileName): string;
begin
  with TFileStream.Create(FileName,
      fmOpenRead or fmShareDenyWrite) do begin
    try
      SetLength(Result, Size);
      Read(Pointer(Result)^, Size);
    except
      Result := ''; // Deallocates memory
      Free;
      raise;
    end;
    Free;
  end;
end;
dann noch Base64Encode aus der unit von
hier

Dann habe ich es so versucht:

SOAP.File_:=Base64Encode(LoadFile('d:\temp.pdf'));

Nur das SOAP-Portal sagt mir immer, dass die Datei fehlerhaft wäre. Der Rest der Abfrage mit SOAP funktioniert soweit korrekt, daher denke ich, dass es ein Fehler beim Erstellen des Strings ist. Ich denke daher, dass ich einen Fehler in dieser Routine habe, nur sehe ich den Fehler einfach nicht.

Vielleicht hat jemand eine Idee, was ich falsch mache

Danke

Chaosworld
  Mit Zitat antworten Zitat