Navigation

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

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

    ChurchTools Schnittstellen
    3
    4
    104
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      melonion last edited by

      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 Reply Last reply Reply Quote 0
      • T
        thommyb @melonion last edited by

        @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 Reply Last reply Reply Quote 0
        • M
          melonion @thommyb last edited by

          @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?

          narnitz 1 Reply Last reply Reply Quote 0
          • narnitz
            narnitz ChurchToolsMitarbeiter @melonion last edited by 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)

            1 Reply Last reply Reply Quote 0
            • First post
              Last post