Création d'un FileDocument depuis un File java

Olivier Dimper · le 27/05/19 à 11:22

Bonjour,

Nous tentons de récupérer un fichier depuis C:/monFichier pour le déplacer vers Jalios en créant un FileDocument qu'on pourrait ranger dans une de nos catégories du site. Pour cela, nous créons un File à partir du chemin d'accès et nous utilisons la méthode FileDocument.getFileDocumentFromFile(monFichier). Cependant, cette méthode renvoie systématiquement un null.

Une idée?

0 pt
Frédéric Touitou · le 27/05/19 à 12:26

Bonjour,

  • La méthode FileDocument.getFileDocumentFromFile() retourne le FileDocument déjà existant, associé au File passé en argument.
  • Dans votre cas, il faudrait plutôt utiliser l'une des signatures de FileDocument.getInstance(), après avoir utilisé FileDocument.getNewDocumentFilename() pour récupérer le chemin du fichier dans /upload, et l'y avoir copié, selon cette séquence (myFile étant bien entendu le fichier - File - d'origine) :
Channel channel = Channel.getChannel();
String newFilename = FileDocument.getNewDocumentFilename(myFile.getName());
File newFile = new File(channel.getRealPath(newFilename));
IOUtil.copyFile(myFile, newFile);
FileDocument newFileDoc = FileDocument.getInstance(newFilename, IOUtil.getQualifiedName(myFile), null, null);
newFileDoc.performCreate(channel.getDefaultAdmin()); // Penser ici à utiliser un "vrai utilisateur" si possible, et à tester le code retour !

Bien cordialement.

1 pt
Olivier Dimper · le 27/05/19 à 15:08

Bonjour,

Effectivement, cela marche bien mieux comme ceci, merci !

0 pt