0

Mehrere Files für Upload

Hallo zusammen,

ist es möglich mehrerer Files in gleichzeitig in den Aufruf zu packen und am Ende zu mappen?

Hier ist mal das bsp. für ein File, ich habe aber gesamt 11 in diesem Rekord.


Button skript: "// //Funktion umlaute und sonderzeichen entfernen //"; function fx_Dateiname(TT : text) do let mySTR := ["Ä", "Ü", "Ö", "ä", "ü", "ö", "ß"]; let myARR := ["Ae", "Ue", "Oe", "ae", "ue", "oe", "ss"]; let myT := TT; for ii in range(0, 7) do let myS := item(mySTR, ii); myT := replacex(myT, myS, item(myARR, ii)) end; replacex(myT, "[~ "" # % & * : < > ? / \ { | }.]", "_") end; "// // Funktion um Anhang im Record zu löschen //"; function fx_AnhangLoeschen(xUrl : text) do let Antwort := ""; let vHeader := { Authorization: first(select 'Zugänge').'Ninox API Bearer' }; Antwort := text(http("DELETE", xUrl, vHeader, "")) end; "// //ID für file erzeugen ohne dateiendung / Ninox feld ID und umlauten //"; let filename := item(split(replace(text(file), "." + replace(extractx(last(split(text(file), "/")), "(\.[A-Za-z0-9]+$)"), ".", ""), ""), "/"), 1); let vpublic_id := fx_Dateiname(filename); "// //freigabe link für file //"; let Bildlink := shareFile(file); "// //zugangsdaten aus anderer tabelle zuweisen //"; let uploadkey := first(select 'Zugänge').text(CloudinaryUpload); let ninoxkey := first(select 'Zugänge').text('Ninox API'); let cloudikey := first(select 'Zugänge').text(CloudinaryAPI); let webhook := first(select 'Zugänge').text(WebhookCloudinary); let ablage := first(select 'Zugänge').text(Cloudinary_Folder); "// //daten im jason-format zusammenfügen //"; let data := { file: Bildlink, folder: ablage, upload_preset: uploadkey, public_id: vpublic_id, api_key: cloudikey }; "// //aufruf auf server-seite //"; do as server let response := http("POST", webhook, data); 'response ausgabe' := text(response); "// //response mappen um den link in textfeld zu schreiben //"; 'Cloudinary-Link aus response' := text(response.result.secure_url) end; "// //Pause einfügen so das das file nicht vor dem upload gelöscht ist //"; sleep(500); "// //Bildfeld (file)löschen.... liegt dann im Anhang auch wenn es nicht sichtbar ist //"; file := null; "// //files entgültig aus Anhang löschen //"; for i in files(this) do let vUrl := "https://api.ninoxdb.de/v1/teams/" + teamId() + "/databases/" + databaseId() + "/tables/" + tableId(this) + "/records/" + Nr + "/files/" + last(split(text(i), "/")); fx_AnhangLoeschen(text(vUrl)) end

Grüße Michi

1 Antwort

null
    • Michi.1
    • vor 4 Monaten
    • Gemeldet - anzeigen

    Hab mal zum Testen Folgendes probiert. Body erstellen (zusammensetzen) und das neue JSON Array wieder auseinander bauen.

    Der letzte Schritt will noch nicht, die einzelnen "dat" Werte in die einzelnen Felder zu schreiben. Oder bin ich auf dem völlig falschem weg??

    let vArray2 := [];
    let vArrayObj2 := [];
    let vObj2 := {};
    let anhang := [Bild, 'Bild 2', 'Bild 3', 'Bild 4'];
    for i in anhang do
        vObj2 := {
                dat: last(split(text(i), "/")),
                id: text(Nr) + text(now()),
                folder: first(select 'Zugänge').text(Folder_Fiebiger_Scheibe)
            };
        vArrayObj2 := [vObj2];
        vArray2 := array(vArray2, vArrayObj2)
    end;
    'body ausgabe formatJson' := formatJSON(vArray2);
    let auswertung := for i in vArray2 do
            {
                dat: item(i, "dat")
            }
        end;
    'neuer gefilterter json nach "dat"' := text(auswertung.dat);
    'rückgabe link 1' := item(split(text('neuer gefilterter json nach "dat"'), ","), 0);
    'rückgabe link 2' := item(split(text('neuer gefilterter json nach "dat"'), ","), 1);
    'rückgabe link 3' := item(split(text('neuer gefilterter json nach "dat"'), ","), 2);
    'rückgabe link 4' := item(split(text('neuer gefilterter json nach "dat"'), ","), 3)
    

Content aside

  • vor 4 MonatenZuletzt aktiv
  • 1Antworten
  • 46Ansichten
  • 1 Folge bereits