Comment récupérer le nom d'un fichier uploadé dans un document

1
0
-1

Bonjour,

mon processus charge dans un document, un fichier de données (de type xlsx, csv ou txt) via le formulaire d'instanciation et le widget UPLOAD.
Par exemple, le fichier sélectionné peut s'appeler "conso_data_2020_03.xlsx"

Le document, déclaré au niveau du pool s'appelle lui "fichierDonnees".

Dans une tâche du processus, je souhaite recopier ce fichier dans un autre répertoire que le répertoire d'origine.
Pour ce faire, je download le document en appliquant le script suivant, trouvé sur le forum :

import org.bonitasoft.engine.api.ProcessAPI;
ProcessAPI processAPI = apiAccessor.getProcessAPI();
byte[] content = processAPI.getDocumentContent(fichierDonnees.getContentStorageId());
FileOutputStream fos = new FileOutputStream(chemin + "resultat.xlsx");
fos.write(content);

"chemin" est une variable initialisée par le chemin de destination de mon fichier ("c:\projet\conso\data\")

Le problème est que je perds le nom du fichier d'origine, le fichier résultant s'appelant toujours par le nom que j'ai mis en dur dans FileOutputStream,
soit "resultat.csv".

Comment faire pour que je puisse récupérer le nom d'origine du fichier, pour pouvoir ensuite enregistrer le fichier sous ce nom ?

D'avance, merci pour vos réponses,

Thierry

1 answer

1
+1
-1
This one is the BEST answer!

hello,

maybe you can have a look at this documentation page: https://documentation.bonitasoft.com/bonita/7.10/documents

they talk about the method: "doc.getContentFileName()"

hope this helps,

Julien.

Comments

Submitted by brt6178_1422639 on Mon, 05/04/2020 - 10:00

Merci/Thank you Julien.

I've modified my script :

byte[] content = processAPI.getDocumentContent(fichierDonnees.getContentStorageId());

FileOutputStream fos = new FileOutputStream(chemin +fichierDonnees.contentFileName);

and it works !

Submitted by julien.mege on Mon, 05/04/2020 - 11:07

perfect,

could you validate also the first answer to make it more visible for the community?

Notifications