1

API Hilfe - von Ninox nach Nextcloud

Hallo liebe Ninox Freunde! Ich habe eine Herausforderung wo ich nicht mehr weiterkomme. Ich möchte gerne die PDF Dokumente auf meiner Nextcloud ablegen  und das per API

Ich habe es schon geschafft das per Button ein neuer Ordner in der Nextcloud erstellt wird.

Jetzt geht es darum das eine Datei dort abgespeichert wird. 

Ich habe ein Bildfeld mit dem Namen Datei. Wenn ich eine Bilddatei dort reinlege wird im Textfeld ein ShareFile erstellt. 

Als nächstes soll dann die Datei durch einen Button in Nextcloud abgespeichert werden.

Folgenden Script habe ich im Moment:

let response := do as server
        http("PUT", "https://chalvicloud.de/remote.php/dav/files/VICTOR/chalvi/projekt225/" + "pkw.pdf", {
            Authorization: "Basic !!!!!!",
            'Content-Type': "application/json"
        }, importFile(this, "https://share.ninox.com/azipn99us2zut7ekscwf03jyid55d03guk1m/pkw.pdf", "pkw.pdf"))
    end;

In Ninox wird die Datei angelegt aber die ist Leer. 

Bin für jede Hilfe dankbar.

9 Antworten

null
    • + Maßanzug statt Massenware +
    • RonaldP
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Moin VS2021 ,

    ich werde noch nicht ganz schlau aus Beschreibung und Skript.

    Beschreibung: oben, "pdf in Nextcloud speichern", am Ende "pdf in ninox leer"

    Machst du importfile zur Überprüfung? wenn ja dann aber nicht mit dem ninox sharelink.

    Skript: Api PUT-Nextcloud / Importfile aus ninox in ninox?

      • chalvi // WERBEAGENTUR GbR
      • VS2021
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Sorry, ich habe mich da verschrieben. Natürlich ist die Datei in Nextcloud leer. 

      • chalvi // WERBEAGENTUR GbR
      • VS2021
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Hallo DIGITOOL ,

      versuche es nochmal zu erklären. Ich habe eine Tabelle Bildfeld=Datei dort füge ich eine Datei ein in diesem fall (Pkw.pdf) durch einen Trigger wird ein ShareFile Link erstellt im Textfeld=sharefile. Mit dem Button soll die Datei an Nextcloud geschickt werden. Das erste Bild zeigt die Tabelle.

      Im zweiten Bild ist Syntax aus der Ninox-Docuentation. Es zeigt das auch ein File abgeben werden kann. 

      So wie ich verstehe, warum es nicht klappt.

      1. Problem: Entweder funktioniert Ninox nur mit Content-Type: Json und nicht mit binary oder form-dat uws. 

      2. Problem: Ich hänge das File in die Code falsch ein. In dem falle mache ich es mit ImportFile. Bestimmt mache ich es Falsch. 

      Ich bin von Haus aus kein Programmiere, aber lerne gerne dazu. 

      Vielleicht ist das etwas verständlicher. Danke für die Hilfe!

    • + Maßanzug statt Massenware +
    • RonaldP
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Ich habe selbst auch ne nextcloud, habe diese aber bisher noch nicht per API mit Files beschickt.

    Dann versuche es mal so (ungetestet, weil unterwegs):

    let response := do as server
            http("PUT", "https://chalvicloud.de/remote.php/dav/files/VICTOR/chalvi/projekt225/" + "pkw.pdf", {
                Authorization: "Basic !!!!!!",
                'Content-Type': "application/json"
    }, [https://share.ninox.com/azipn99us2zut7ekscwf03jyid55d03guk1m]
        end;

    Ggf. Mit "" für sharelink oder ohne [ ]. Oder direkt das bildfeld.

      • chalvi // WERBEAGENTUR GbR
      • VS2021
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Danke DIGITOOL, 

      ich habe es jetzt soweit das es die PDF's zu Nextcloud überträgt und es Anzeigt. Mit diesem Code:

      let response := do as server
              http("PUT", "https://chalvicloud.de/remote.php/dav/files/VICTOR/chalvi/projekt225/" + Dateiname, {
                  Authorization: "Basic !!!!",
                  'Content-type': "application/json"
              }, {}, [Datei])
          end;

      Bei Bildern oder anderen Dateien ist die Dateigröße identisch, beim Versuche die Datei zu öffnen wird gesagt das die Datei beschädigt ist.

      Ich habe jetzt mal eine Bilddatei die im Nextcloud gelegt wurde mit dem Terminal aufgemacht. Folgender Fehler wird sichtbar. Im oberen Teil der Datei und am Ende werden zusätzliche Teile eingefügt im Bild zu sehen die in ROT geschriebenen. Wenn ich es im Terminal lösche funktioniert die Datei. 

      Es sieht so aus das NINOX das einfügt bei der Übertragung. Wenn ich den Befehl mit curl im Terminal auslöse funktioniert es. Wenn aus Ninox dann nicht.

      Vielleicht weis ja einer was man da machen kann? Lg

      • chalvi // WERBEAGENTUR GbR
      • VS2021
      • vor 1 Jahr
      • Gemeldet - anzeigen

      VS2021 

      • Dr_Stefan_Philipp
      • vor 10 Monaten
      • Gemeldet - anzeigen

       Hast du es mal mit 'Content-Type' : "application/pdf" versucht?

      let response := do as server
              http("PUT", "https://chalvicloud.de/remote.php/dav/files/VICTOR/chalvi/projekt225/" + Dateiname, {
                  Authorization: "Basic !!!!",
                  'Content-type': "application/pdf"
              }, {}, [Datei])
          end;
      
    • T_Bartzsch
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Schau dir doch mal die API Dokumentation von Nextcloud an. Dort siehst du bestimmt, wie die API ein eingehendes Bild erwartet. Manche brauchen ein Bild als base64 String, manche können mit einer url arbeiten. Wenn Du die nextloud API mit einer URL beschicken kannst, dann sendest Du den ShareLink aus der Ninox. Die Antwort der Nextcloud API hast du dann als JSON in der Variable "response" ... (let response := ......). Diese Antwort kannst Du dir in ein mehrzeiliges Textfeld namens "API_response" ausgeben lassen (API_response := text(response) ) . Darin siehst Du, wenn alles korrekt läuft bestimmt die Informationen über das korrekt abgelegte Bild in Nextcloud, evtl eine ID, Upload datum und auch bestimmt einen Link auf das Bild in der Nextcloud.

    Diesen Link kannst Du aus dem response heraus in ein URL Feld deines Datensatzes legen lassen. Natürlich könntest Du diesen Link auch via importFile wieder in die Ninox in das Bildfeld legen... dann hast Du aber nix gewonnen, Du willst ja auslagern.

    Ich mache das über Cloudinary, schiebe das Bild dorthin und lasse mir anschließend ein "Thumbnail" mit 300px erzeugen, welches ich dann als JPG in das NINOX Bildfeld ziehe. So habe ich das große PDF ausgelagert und hole mir zur Ansicht ein kleines JPG ins Ninox Bildfeld...

    • Timon_Rickert
    • vor 1 Jahr
    • Gemeldet - anzeigen

    konntest du mittlerweile die Dateien ablegen? Hab vor einiger Zeit das gleiche probiert, leider mit dem selben Fehler in der Datei.