IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

[struts] upload de fichier


Sujet :

Struts 1 Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut [struts] upload de fichier
    Bonjour,

    Je suis à la recherche d'une manière de faire.
    Je m'explique : j'utilise Struts, Tomcat et j'ai un formulaire qui permet d'envoyer un fichier qui doit etre stocke sur le serveur. Mon probleme est comment faire cela ?
    J'ai trouver des solutions mais celles-ci effectuent des operations dans les classes Action de struts or je dois utilise des classes business qui ont pour but de realiser/implementer la logique metier de l'application et le but des classes Action est seulement de creer des DTO et BA (Businness action) et de leur donne les informations necessaires et de recuperer le resultat en aucun cas une action ne doit etre fait.
    Et la j'ai aucune idee !!!

    Avez-vous des idees pour moi ? Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Il faut que tu implémentes une classe nommée File (ou autre ) avec comme propriété un nom et un tableau de byte.

    Ensuite dans ton Action tu récupères le Fichier en utilisant l'objet FormFile (que tu auras envoyé via ton formulaire en n'omettant pas l'attribut enctype="multipart/form-data"). Tu copies le contenu récupéré dans ton objet File et tu le transmets vers ton Receveur Business.

    Enfin dans ton receveur, tu n'as plus qu'a ouvrir un flux de sorti(sur ton serveur) pour recopier le tableau de byte de ton File.

    Voila.
    Etre c'est etre relatif.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    comment je transfert mon fichier dans un tableau de byte ?

  4. #4
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Le FormFile est un objet Struts qui est en fait ton fichier uploadé.
    il contient déjà un tableau de byte.

    Pour copier ton tableau de byte (il faudra le faire coté business bien sur).

    Exemple de methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void copyFile(File File, String filePath) throws FileNotFoundException {
    		try {
    			FileOutputStream fileOut = new FileOutputStream(filePath);
    			fileOut.write(file.getFileData()); // fileData est un byte[]
    			fileOut.flush();
    			fileOut.close();
    			fileOut = null;
    		} catch (FileNotFoundException e) {
    			throw new FileNotFoundException(
    				"Erreur de création de la piece jointe veuillez fermer le fichier: " + filePath + " s'il est ouvert");
    		} catch (Exception e) {
    			s_log.error(e.getMessage(), e);
    		}
    	}
    Etre c'est etre relatif.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Comment je fais pour savoir dans mes business objet ou stocker les fichiers, j'aimerai que le chemin ne soit pas transmis en parametre a celui-ci mais qu'il determine tout seul le chemin comme le fait la fonction getRealPath que l'on peut utiliser sur un objet de type HttpServletRequest ?

  6. #6
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Il n'y a que le nom du fichier il me semble, non? sinon il faut que tu découpes cette chaine et que tu récupères juste le nom du fichier (utilises un StringTokenizer).
    de toute maniere le chemin complet du fichier n'est rien d'autre que le chemin local du client. Donc ca ne t'es pas utile.

    Tu sais ou tu dois mettre ton fichier au niveau de ton business (Tous les fichiers seront mis au même endroit). Alors utilises un chemin absolu (exemple "c://tomcat//webapp/maWebAppBusiness/repMachin/").
    Etre c'est etre relatif.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tu sais ou tu dois mettre ton fichier au niveau de ton business (Tous les fichiers seront mis au même endroit). Alors utilises un chemin absolu (exemple "c://tomcat//webapp/maWebAppBusiness/repMachin/").
    Il n'y a pas de moyen de le determiner dynamiquement, c'est celui-ci qui m'interresse pas celui cote client.

  8. #8
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    c ds la faq struts.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    et ou dans la faq j'ai lu la faq et il n'y a pas ma reponse.

  10. #10
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Ca ne peut pas être dans la FAQ Struts vu que c'est du coté Business (plus de struts disponible).

    C'est bien pour cela qu'il te faut mettre le chemin absolu dans une variable global (genre RessourceBundle pour des livraisons sur differentes plate forme), ou ajouter une propriété dans ton objet File qui contienne le chemin de ta webApp grace à ta request (ca tu le renseignes dans ton action avant de passer le File à ton Business ).

    Je ne vois pas d'autre solution.
    Etre c'est etre relatif.

  11. #11
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    merci pour ton aide Yolepro. Elle m'a ete precieuse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Uploader un fichier en struts 1
    Par WX500 dans le forum Struts 1
    Réponses: 1
    Dernier message: 24/03/2011, 13h49
  2. probleme d'upload du fichier avec struts
    Par buchir dans le forum Struts 1
    Réponses: 5
    Dernier message: 22/06/2007, 20h59
  3. [Struts]Upload de fichier
    Par eXiaNazaire dans le forum Struts 1
    Réponses: 13
    Dernier message: 22/02/2006, 10h49
  4. Upload de fichiers
    Par GDVL dans le forum ASP
    Réponses: 4
    Dernier message: 03/06/2004, 12h44
  5. [struts] utiliser plusieurs fichiers properties
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 7
    Dernier message: 03/10/2003, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo