[java] upload un fichier vers un serveur

Fermé
cartman97 Messages postés 19 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 12 septembre 2011 - Modifié par cartman97 le 13/04/2010 à 10:25
 mokom - 24 déc. 2010 à 17:16
Bonjour

Je développe une application JAVA graphique dans le cadre de mon stage et le soucis rencontré est que:
Je dois créer une interface graphique permettant d'envoyer des mails; l'envoi des mails se déroule correctement cependant tout mail envoyé doit être sauvegarder dans une base de données(j'utilise EASYPHP pour les tests en local). Sauvegarder le contenu du mail ne pose aucun problème, cependant comment upload les pièces jointes(images,fichiers texte...) sur le serveur?? (Les pièces jointes proviennent du disque dur. Elles sont récupérées à l'aide d'un JFileChooser)

Sur le net, j'ai vu qu'il était également possible d'insérer les pièces jointes dans un champs de type BLOB, ms cela semble alourdir la BDD... (donc ce n'est pas la bonne méthode)
A voir également:

5 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
Modifié par kij_82 le 13/04/2010 à 11:43
Bonjour,

Effectivement, enregistrer les pièces jointes dans la base de données ne semble pas être une solution très efficaces, cela risque d'être très couteux niveau place.

Des exemples / tutoriaux d'applet d'upload en Java, tu as beaucoup.
Google est ton ami, mais par exemple tu as celle-ci:
https://sourceforge.net/projects/jupload/

Tu peux télécharger pour voir si ça correspond à tes besoins, et ensuite regarder les sources pour prendre exemple.

Ou tu as aussi des solutions toute faite, il y a juste à customiser son application:
http://www.jfileupload.com/products/jfileupload/index.html

Je crois que c'est gratuit d'utilisation, je n'ai pas vraiment regarder.

Bref tu as le choix, tu peux aussi faire la tienne, ça reste simple, c'est de la communication Client / Serveur avec transfert de données.



~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
13 avril 2010 à 11:58
si tu utilises Easyphp tu n'auras pas de pb pour joindre un fichier en pièce jointe au mail puisque le serveur et le fichier sont tous les deux en local sur ton PC

par contre dès que tu va mettre ton script sur un serveur distant donc envoyer le mail depuis ce serveur il faudra que le fichier soit aussi sur le serveur, (ça tu l'as bien vu) et inutile de le mettre dans la BDD, il suffit de mettre par contre le chemin et le nom du fichier dans la BDD

il me semble qu'il existe une classe JAVA pour uploader des fichiers, et attention a mettre le répertoire qui va recevoir ce fichier lors de l'uplod avec les bons droits si c'est un serveur UNIX /LINUX en windows le pb ne se pose pas
0
cartman97 Messages postés 19 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 12 septembre 2011
13 avril 2010 à 16:19
J'ai bien regarder les liens que tu m as envoyé kij_82 (merci) mais quelque chose m'échappe et corrigez moi si je me trompe:

l'utilisation d'applets est nécessaire que dans un environnement utilisant une architecture WEB + JAVA ( c'est bien ca??), or dans mon application l'interface graphique est créée à partir des composants graphiques SWING. Je ne vois donc pas comment utiliser les applets.

Je souhaite juste en appuyant sur un JButton copier le fichier récupéré du JFileChooser vers mon serveur EASYPHP.

Merci d'avance!
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
Modifié par kij_82 le 13/04/2010 à 17:21
Re,

Non, un/une applet n'est pas obligatoirement utilisée dans une application dite 'online'.

Mais bon, oublions cet aspect Applet duquel il n'est pas nécessaire de parler.
Tu as juste à faire une classe Java dédié au transfert FTP de tes données vers ton serveur.

Il te reste à savoir utiliser la librairie 'common net' de Jakarta par exemple, au sein de ta classe dédié à ce traitement, pour pouvoir faire les transferts.

La librairie se trouve ici : http://commons.apache.org/proper/commons-net/
(en bas de page tu trouvera des liens explicatifs, mais c'est en anglais, notamment cette page avec des exemples: https://www.informit.com/

C'est celle que j'ai utiliser pour faire du transfert FTP/SFTP au sein d'une applet Java (utilisée à l'intérieur d'une application online dans mon cas, mais ce n'est pas une obligation)

Si tu as des soucis, bien que ça fasse un moment que je n'ai pas mis le nez dedans, je pourrai peut-être t'aiguiller dans l'utilisation / correction de ton code Java.
0
cartman97 Messages postés 19 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 12 septembre 2011
13 avril 2010 à 22:16
J'ai regardé common.net de Jakarta cela semble intéressant le seul souci est que pour transférer les fichiers il faut utiliser le protocole FTP alors que j'utilise EASYPHP qui est un serveur WEB.

Je dois alors obligatoirement utiliser un serveur FTP pour pouvoir upload mes fichiers ou l'utilisation de EASYPHP suffit??

En PHP, il est possible d'utiliser le protocole HTTP pour pouvoir upload vers un serveur, est ce que ce protocole peut également être utilisé en JAVA (sans utiliser les APPLETS)??
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
Modifié par kij_82 le 14/04/2010 à 11:00
Dois-je utiliser obligatoirement un serveur FTP ?
Je dirai que cela dépends de ton hébergement. EasyPHP c'est pour gérer tes applications web, sites web, à base de PHP et scripts notamment. Mais lorsque tu loue une hébergement, on te fourni également un espace FTP pour pouvoir dépenser les fichiers de ton site à héberger sur la partie que tu loue.
Si tu souhaite faire de l'upload, autant alors utiliser le protocole FTP, mais tu peux normalement utiliser le protocole HTTP effectivement. Pour la partie HTTP, je n'ai jamais vraiment regardé comment ça fonctionne.

En PHP, est-il possible d'utiliser le protocole HTTP...
Evidemment ^^, mais je pensais que tu souhaitais faire ça par Java ? Il faut savoir ce que tu veux faire. Attention ! Ce n'est pas parce que ta base de données tourne sous EasyPHP qu'il te faut passer par du PHP pour l'intérroger. Tu parle d'ailleurs toi même de Java au départ.
EasyPHP c'est un module qui en regroupe plusieurs (MySQL pour les bases de données, Apache pour le serveur web, etc.), te permettant ainsi d'avoir une solution tout en un pour pouvoir gérer des sites internet, entre autre.

Est-ce que le protocole HTTP pour être utiliser en Java ?
Oui, un exemple ici : http://www.iprelax.fr/http/http_prog11.php


Pour répondre de manière plus globale et recadrer un peu sur ton problème, il faut choisir en premier lieu la structure de ton projet, et les technologies qui vont être utiliser pour chaque partie.
Alors, Java ou PHP pour établir une interface d'upload ? A priori tu parlais d'une interface graphique Java, je ne vois donc pas en quoi le PHP vient faire ici, on parle uniquement de Java.
Et si tu utilise Java, alors autant utiliser le protocole FTP puisque c'est casi obligatoire que tu ai une espace FTP avec ton site / ta base de données en ligne.

Est-ce que ça répond à ton problème ? Et pour être plus clair, dans ton cas, si j'étais toi je ferai :
- communication FTP (via common net) entre ton application Java et ton serveur FTP (dont tu as eu les identifiants de connexion lorsque tu as du prendre ton hébergement)
0
merci beaucoup :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cartman97 Messages postés 19 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 12 septembre 2011
14 avril 2010 à 12:20
Merci beaucoup, tes réponses m'ont été d'une grande utilité ;) !!!
0