PNG Datei aus Json
Hallo,
ich bekomme aus einem JSON POST request ein Ergebnis zurück das Image Daten in Base64 encoded enthält. Den Text kann ich extrahieren und in ein Feld schreiben. Ich kann ihn auch mit einem externen Konverter in ein Image verwandeln. IN NiNOX komme ich aber einfach nicht weiter: wie kann ich diesen BASE64 encodeed Text in NINOX in ein Image verwandeln und in einem NINOX Bild Feld abspeichern.
Freue mich über ein ANtwort :)
LG Klaus
5 Antworten
-
Hallo Klaus
In Ninox selbst überhaupt nicht.
Entweder ist im request noch ein Link auf das Bild enthalten, welches du mit importFile() in das entsprechende Feld schieben kannst, oder du must die Rest-API benutzen um das Bild über eine Integration (Integromat, Zapier, NodeRed, N8N) in Ninox zu schreiben.
Mit der REST-API kannst du das Bild/Datei entweder in den Anhang des Records oder seit dem letzten Update, direkt in das Bildfeld schreiben.Eine Beschreibung findest du hier: https://docs.ninox.com/en/product-updates/beta.
FieldID muss die FieldID des Bildfeldes sein, nicht der Name des Bildfeldes. Sonst funktioniert es nicht.
Es könnte vielleicht so aussehen:
let TeamID := teamId();
let DatabaseID := databaseId();
let TabledID := this;
header := {"Authorization": "Bearer 'Ninox APIKey'","content-type" : 'multipart/form-data'};
url := "https://api.ninoxdb.de/v1/teams/"+TeamID+"/databases/"+DatabaseID+"/tables/"+TableID+"/records/"+Number(msg.RecordID)+"/files"
body := {
"filename": {
"value": 'Dein Base64 Text',
"options": {
"filename": Bildname.Endung
}
},"fieldId":"M1- Wenn das die ID des Bildfeldes ist"
};
http("POST",url,header,body)
Wobei ich das aus Ninox heraus selbst noch nicht getestet habe und nicht weiss, ob das so ohne Integrationsprogramm innerhalb von Ninox funktioniert.
(Ich denke eher nicht)Du wirst um eine Integration, die dir aus den Bilddaten ein Image baut und über die API zurück schreibt, wohl nicht herumkommen.
Ich habe es bisher nur direkt aus Integrationsprogrammen (NodeRed/N8N) nach Ninox geschrieben und da funktioniert es. -
Hallo Uwe,
vielen Dank, habe mir das schon gedacht.
Mittlerweile hat mir der "Lieferanten" der Schnittstelle eine andere Version (WEB API) geschickt die auch gut funktioniert, d.h. mit importFile() bekomme ich das PNG in ein Bildfeld und wird so angezeigt und ich kann es ausdrucken.
Soweit alles gut. Was ich aber festgestellt habe ist es auf dem iPad nicht funktioniert, d.h. das importFile() in der iPAD App und iPhone bringt den Fehler "File not available: ...) . Mache ich da noch etwas falsch, oder ist geht das importFile() nicht auf iPAD etc ??
Viele Grüße Klaus
-
Hallo Klaus
Ich habe es mal auf dem iPad getestet mit der neuesten Ipad-Version und keine Probleme mit importFile(). Die Datei (URL von der Datei) wird in das Bildfeld geschrieben.
-
Hallo Uwe,
danke für die Rückmeldung die mir nun keine Ruhe gelassen hat...
Habe jetzt den Fehler gefunden :)
Es scheint eine unterschiedliche Behandlung der URL in der NINOX WEB und der IPAD Version zu geben.
Es liegt an den Leerzeichen, enthält der URL String eine Leerzeichen wird keine Bilddatei importiert oder was auch immer da passiert.
Ersetzte ich aber im URL String die Leerzeichen durch %20, dann funktioniert es.....
LG Klaus
-
Hallo Klaus
Dann würde ich es folgendermaßen machen:
Bildfeld := importFile(this,urlEncode('Url mit Sonderzeichen'))
Content aside
- vor 3 JahrenZuletzt aktiv
- 5Antworten
- 440Ansichten