API REST Upload fichier pdf ou odt

Bonjour,

J’essaie d’utiliser l’API pour uploader des fichiers. En suivant la documentation sur api/index.php/explorer, je comprends comment utiliser l’API pour uploader directement un contenu texte en utilisant une chaine son telle que celle proposée en exemple:

{ "filename": "mynewfile.txt", "modulepart": "facture", "ref": "FA1701-001", "subdir": "", "filecontent": "content text", "fileencoding": "", "overwriteifexists": "0" }

mais je ne vois pas comment faire la même chose avec un fichier type pdf ou odt. Est-ce que quelqu’un sait comment faire ?

Cordialement,

Pierre

Bonjour,

Dans l’attribut fileencoding, tu passes la valeur base64 et tu encodes le contenu de ton fichier PDF en base64 pour la valeur de l’attribut filecontent. Par exemple en utilisant :

base64_encode(file_get_contents(CHEMIN_FICHIER_PDF))

Merci beaucoup pour l’info…
J’ai adapté cela pour l’utiliser à l’intérieur d’un script R. Je poste le code au cas où ce soit utile à d’autres.

library(jsonlite)
library(httr)
file <- "~/tmp/test.pdf"
yy <- list(filename = "test.pdf",
           modulepart = "facture",
           ref = "FA1701-001",
           subdir = "",
           filecontent = base64_enc(readBin(file, what = "raw", file.info(file)[1,"size"])),
           fileencoding = "base64",
           overwriteifexists = "1")
xx <- toJSON(yy, auto_unbox = TRUE)
headers <- c(DOLAPIKEY = "xxxxxxxxxx")
uri <- "http://xxxxxxxxxx/dolibarr/api/index.php/documents/upload"
ss<-POST(uri, add_headers(headers), body=xx, encode ="json")
rawToChar(ss$content)
1 J'aime