Binäre Daten aus einem Callback in Datei speichern?
Verfasst: 22.05.2024 19:53
Ich poste Daten zu einem Webserver / CGI und erhalte ein PDF gesendet.
Damit lande ich im CGI_CreatePDFCallback(success, Result.s)
In Result.s sind dann das PDF als binäre Daten enthalten.
Frage: wie kann ich die Binärdaten in eine Datei speichern?
Wenn ich einfach WriteString() nehme, sind die Daten verändert und das PDF defekt.
Das gleiche Problem bei dem Umweg über PokeS() und WriteData():
Mache ich irgendwas falsch? Bzw. ja, klar ... mache ich .. aber wie gehts richtig?
Damit lande ich im CGI_CreatePDFCallback(success, Result.s)
In Result.s sind dann das PDF als binäre Daten enthalten.
Frage: wie kann ich die Binärdaten in eine Datei speichern?
Wenn ich einfach WriteString() nehme, sind die Daten verändert und das PDF defekt.
Das gleiche Problem bei dem Umweg über PokeS() und WriteData():
Code: Alles auswählen
Procedure CGI_CreatePDFCallback(success, Result.s)
Protected *mem
; Überprüfen, ob der Callback erfolgreich war
If success
; Öffne die Datei zum Schreiben (binär)
If CreateFile(0, "myDocument.pdf", #PB_Ascii )
; Schreibe die Daten aus Result in die Datei
; WriteString(0, Result)
*mem = AllocateMemory(Len(Result))
PokeS(*mem, 0, Result, Len(Result), #PB_String_NoZero | #PB_Ascii)
WriteData(0, *mem, 0, Len(Result))
; Exportiere die Datei als PDF
ExportFile(0, "application/pdf", #PB_LocalFile)
; Schließe die Datei
CloseFile(0)
Else
Debug "Fehler: Datei konnte nicht erstellt werden."
EndIf
Else
Debug "Fehler: Callback nicht erfolgreich."
EndIf
EndProcedure