Page 1 sur 1

Télécharger un fichier sur le serveur

MessagePublié: 16 Nov 2014 à 11:01
par Bizous78
Bonjour tout le monde,
Je suis à la recherche d'un mode opératoire pour télécharger un fichier sur le serveur.
Je m'explique: j'ai besoin de uploader 3 fichiers que j'enverrai en webservice à un tiers.
Mon problème concerne uniquement la première partie.
Je ne sais pas comment je peux faire pour simplement télécharger le fichier sur le serveur en sachant que
ma technologie est du domino SANS utilisation de masque (les pages sont générées par des agents et les données enregistrées dans une base sql....).

Je suis un peu perdu :(

Si quelqu'un peut me présenter un début de solution :shock:

P.S: je connais la balise file en html mais je ne "visualise" pas l’interaction entre le submit et le traitement à faire sur le document....

Cédric.

Re: Télécharger un fichier sur le serveur

MessagePublié: 16 Nov 2014 à 13:55
par roubech
même si tu n'utilises pas de masque, dans ton agent tu récupères les données postées depuis le form HTML dans une doc Notes "en mémoire" via NotesSession.DocumentContext
Ensuite avec NotesDocument.EmbeddedObjects ...

Re: Télécharger un fichier sur le serveur

MessagePublié: 17 Nov 2014 à 09:14
par Bizous78
Quand je lis la réponse, j'ai honte d'avoir posé la question :(
Merci pour ton aide Roubech!

Re: Télécharger un fichier sur le serveur

MessagePublié: 27 Nov 2014 à 18:04
par Bizous78
Bonjour Roubech,

J'ai fais le test suivant pour vérifier si mon document contexte contenait des pièces-jointes et le résultat est négatif "Pas de pièce-jointe".
Pourtant, il contient bien une pièce-jointe quand je l'ouvre....

Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Document documentContext= agentContext.getDocumentContext();
Vector vect=documentContext.getEmbeddedObjects();
if (vect.isEmpty()){
System.out.print("Pas de pièce-jointe");
}else{
System.out.print("pièce-jointe OK");
}
System.out.print(vect.size());

Est-ce quelqu'un à une idée pour récupérer dans un documentContext d'un agent les pièces-jointes?

Re: Télécharger un fichier sur le serveur

MessagePublié: 01 Déc 2014 à 17:29
par Jérôme Deniau
essayer avec set item = documentContext.GetFirstItem("$File") ou boucler dans documentContext.items pour parcourir tous les champs $File, ensuite tester le type de item si RICHTEXT, récupérer son nom

Exemple

set rtiem = documentcontext.getFirstItem("$FILE")
If ( rtitem.Type = RICHTEXT ) Then

Forall o In rtitem.EmbeddedObjects

If ( o.Type = EMBED_ATTACHMENT ) Then

Call o.ExtractFile( "c:\laoujeveuxdeposerle fichier\" & o.Name )


End If

End Forall

End If


en gros

Re: Télécharger un fichier sur le serveur

MessagePublié: 03 Déc 2014 à 10:07
par Bizous78
Bonjour Jérôme,

C'est une solution que j'avais déjà essayer.
Que ce soit en lotuscript ou en java, il y a un soucis quand on essaye de récupérer des pièces-jointes enregistrées en web en parcourant tous les champs.
Je m'explique; si on enregistre une seule pièce-jointe, on récupère bien un champ $file. Le nom de la pièce-jointe est le bon.
Si on enregistre une deuxième pièce-jointe, on récupérer bien deux champ $file mais le nom de la deuxième pièce-jointe n'est pas le bon (il a le nom de la première pièce-jointe).
Si on enregistre une 3 ième fois le document avec les deux pièces-jointes, les noms des pj sont les bons.

Un collègue m'a aidé à trouver la solution ci-dessous (elle fonctionne):
//Récupérer le document de contexte
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Document documentContext= agentContext.getDocumentContext();

//Récupérer le nom des pièces-jointes
Vector v = session.evaluate("@AttachmentNames", documentContext);

//Extraction des pièces-jointes
sNameFile="";
if (v.isEmpty())
System.out.println("Le document ne contient pas de pièce-jointe");
else for (int i=0; i<v.size(); i++) {
sNameFile = v.elementAt(i).toString();
EmbeddedObject embOjt=documentContext.getAttachment(sNameFile);
embOjt.extractFile(sPathExtract+sNameFile);
}