Télécharger un fichier sur le serveur

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Télécharger un fichier sur le serveur

Messagepar Bizous78 » 16 Nov 2014 à 11:01

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.
Bizous78
Premier posts
Premier posts
 
Message(s) : 36
Inscrit(e) le : 24 Jan 2013 à 13:44

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

Messagepar roubech » 16 Nov 2014 à 13:55

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 ...
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

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

Messagepar Bizous78 » 17 Nov 2014 à 09:14

Quand je lis la réponse, j'ai honte d'avoir posé la question :(
Merci pour ton aide Roubech!
Bizous78
Premier posts
Premier posts
 
Message(s) : 36
Inscrit(e) le : 24 Jan 2013 à 13:44

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

Messagepar Bizous78 » 27 Nov 2014 à 18:04

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?
Bizous78
Premier posts
Premier posts
 
Message(s) : 36
Inscrit(e) le : 24 Jan 2013 à 13:44

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

Messagepar Jérôme Deniau » 01 Déc 2014 à 17:29

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
Avatar de l’utilisateur
Jérôme Deniau
Maître-posteur
Maître-posteur
 
Message(s) : 497
Inscrit(e) le : 08 Mars 2013 à 09:52
Localisation : Rennes (Bretagne à l'Ouest de la France)

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

Messagepar Bizous78 » 03 Déc 2014 à 10:07

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);
}
Bizous78
Premier posts
Premier posts
 
Message(s) : 36
Inscrit(e) le : 24 Jan 2013 à 13:44


Retour vers Développement