• Aktuell
    • Tags
    • Beliebt
    • Benutzer
    • Gruppen
    • Suche
    • Registrieren
    • Anmelden

    Wie kann ich song attachments hoch- und herunterladen via JS?

    ChurchTools Schnittstellen
    3
    4
    154
    Lade mehr Beiträge
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • M
      melonion
      zuletzt editiert von

      Siehe https://github.com/churchtools/churchtools-js-client/issues/25

      Wenn ich PDFs herunterlade, schleicht sich irgendwo im header ein fehler ein (encoding?), der die gesamte datei unbrauchbar macht, obwohl sie ansonsten identisch ist:

      churchtoolsClient.get(f.fileUrl).then(file => {
        fs.createWriteStream(filename).write(file) 
      })
      

      Auch das hochladen von Anhängen zu einem Event (ich denke mal über POST /files/service/ID) bekomme ich nicht hin, die Dokumentation ist da sehr spärlich wie man die files mitgeben soll.

      Hier ist der gesamte code: https://code.ftt.gmbh/janek/carvent/src/branch/main/index.js#L59

      T 1 Antwort Letzte Antwort Antworten Zitieren 0
      • T
        thommyb ChurchToolsMitarbeiter @melonion
        zuletzt editiert von

        @melonion Mein Verdacht wäre ebenfalls das encoding. Ich kenne mich mit Javascript nur mäßig aus, deshalb frage ich mal ganz plump: Bist du denn sicher, dass dir createWriteStream() einen binären Stream zur Verfügung stellt?

        M 1 Antwort Letzte Antwort Antworten Zitieren 0
        • M
          melonion @thommyb
          zuletzt editiert von

          @thommyb JS ist für mich auch nur ne Nebensprache, ich dachte ich kann das Script einfach schnell schreiben und gut ist, aber genau sowas weiß ich nicht, deswegen frage ich 😉

          @SilasGuenther und @hubermat ihr entwickelt den Client mit, könnt ihr vielleich weiterhelfen?

          narnitzN 1 Antwort Letzte Antwort Antworten Zitieren 0
          • narnitzN
            narnitz ChurchToolsMitarbeiter @melonion
            zuletzt editiert von narnitz

            @melonion

            Du bist mit der FormData Idee schonmal auf einem guten Weg.
            Schau mal bitte nach, ob du wie @thommyb schon erwähnt hat hier die definierten Wege befolgst, eine Datei via FormData hochzuladen.

            Die offizielle Dokumentation redet hier davon, dass ein File oder einen Blob genutzt werden muss um eine Datei hochzuladen. (Hierbei ist vllt. interessant, das der File Datentyp auf dem Blob aufbaut.

            Generell solltest du aber Dateien mit dem ChurchTools Client auch hochladen können.

            Das habe ich z.B. in einem Privatprojekt (leider kein öffentlicher Code...) schon wie folgt gemacht:

            const formData = new FormData();
            formData.append('files[]', hierDeinFileOderBlobObject);
            churchtoolsClient.post(`/files/${domainType}/${domainObjectId}`, formData);
            

            So müsste der Upload dann auch funktionieren.

            Der Download von Dateien geht dann analog zu dem, was Andreas auf GitHub geschrieben hat.
            Wichtig ist nur, dass du den Cookie mitschickst, welche Library du für das wirkliche herunterladen der Datei nimmst, ist dann egal. (z.B. Axios, fetch oder das node eigene http)

            App-Entwickler bei ChurchTools

            1 Antwort Letzte Antwort Antworten Zitieren 0
            • Erster Beitrag
              Letzter Beitrag