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

Entrée/Sortie Java Discussion :

(VWP) lire un fichier à partir de IE sur un serveur unix


Sujet :

Entrée/Sortie Java

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Points : 149
    Points
    149
    Par défaut (VWP) lire un fichier à partir de IE sur un serveur unix
    Bonjour

    à partir d'une page web, j'aimerais aller downloader un fichier qui se trouve sur un serveur unix. (le serveur unix est accessible par le réseau local)

    j'aimerais utiliser FTP pour downloader ce fichier et le mettre sur mon disque dur de windows.

    L'événement sera déclenché lorsque je clique sur un bouton de la page web.

    Je dois envoyer le nom du fichier au clique du bonton.

    merci de me fournir vos idées et des fragements de code en java.

  2. #2
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    Y a un souci de sécurité pour ça...

  3. #3
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    Si j'ai bien compris ce que tu veut faire :
    - Un serveur web télécharge des fichier stocké sur un serveur unix
    - Le serveur web les dépose ensuite sur ton disque dur (pb de sécurité ici effectivement)

    Pour la partie Téléchargement FTP de ton serveur unix vers le serveur web, tu peut utiliser FTPClient des commons-net : http://jakarta.apache.org/commons/net/

    Ensuite, tu ne peut pas directement, depuis un bouton sur une page web, déposer des fichier sur ton disque dur. Par contre tu peut proposer un téléchargement (ce qui correspondra quand même au même résultat, même si tu devra ouvrir une popup de téléchargement pour chaque fichier).

    Le plus simple dans ton cas, est que tu crée une action qui t'ouvre le fichier via FTP puis le met dans la requête en steaming.

  4. #4
    Débutant
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Points : 149
    Points
    149
    Par défaut (VWP) lire un fichier à partir de IE sur un serveur unix
    Citation Envoyé par woodwai
    Si j'ai bien compris ce que tu veut faire :
    - Un serveur web télécharge des fichier stocké sur un serveur unix
    - Le serveur web les dépose ensuite sur ton disque dur (pb de sécurité ici effectivement)

    Pour la partie Téléchargement FTP de ton serveur unix vers le serveur web, tu peut utiliser FTPClient des commons-net : http://jakarta.apache.org/commons/net/

    Ensuite, tu ne peut pas directement, depuis un bouton sur une page web, déposer des fichier sur ton disque dur. Par contre tu peut proposer un téléchargement (ce qui correspondra quand même au même résultat, même si tu devra ouvrir une popup de téléchargement pour chaque fichier).

    Le plus simple dans ton cas, est que tu crée une action qui t'ouvre le fichier via FTP puis le met dans la requête en steaming.
    Pour question de sécurité, ça ne pose pas de problème, étant donné que tous les fichiers transigent à l'intérieur de la boite. il n'y a pas d'accès internet. le serveur web et le serveur unix sont à l'intérieur de la boite tous les deux et l'accès se fait par le réseau local.

    Oui c'est le téléchargement que je veux, mais je ne sais pas ou mettre la partie de code. est-ce dans la page jsp ou dans le baking page.

    concernant le link ci-dessus, je ne vois pas à quelle place faut-il y aller sur cette page. on trvaialle avec VWP de netbeans 5.5

    c'est quoi la partie de code qui va vérifier si j'ai une connexion avec le serveur (ping au serveur unix)

  5. #5
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    Quand on parle de sécurité, ça veut juste dire que via le web tu ne peut pas envoyer directement un fichier sur un PC sans utiliser une applet accéptant un certificat ou ce genre de chose.

    Documentation FTP : http://jakarta.apache.org/commons/ne...ocs/index.html, ensuite tu va sur la classe org.apache.commons.net.ftp.FTPClient qui contient un exemple.

    Sinon, voici le scénario que je propose :
    - Tu as une page web qui contient une liste de fichier
    - En cliquant sur un fichier, tu accéde à une servelt qui va se charger de :
    - télécharger le fichier vers le serveur FTP
    - mettre à disposition en streaming vers le client le fichier, il te faut donc streamer le fichier directement dans la requête pour avoir la popup de télméchargement de fichier.

    La page web peut aussi être via servlet/JSP, la servlet chargeant la liste des fichier en ouvrant une connection FTP pour la connaitre

  6. #6
    Débutant
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Points : 149
    Points
    149
    Par défaut
    [quote=woodwai]Quand on parle de sécurité, ça veut juste dire que via le web tu ne peut pas envoyer directement un fichier sur un PC sans utiliser une applet accéptant un certificat ou ce genre de chose.

    Documentation FTP : http://jakarta.apache.org/commons/ne...ocs/index.html, ensuite tu va sur la classe org.apache.commons.net.ftp.FTPClient qui contient un exemple.

    Sinon, voici le scénario que je propose :
    - Tu as une page web qui contient une liste de fichier
    - En cliquant sur un fichier, tu accéde à une servelt qui va se charger de :
    - télécharger le fichier vers le serveur FTP

    Peux-tu expliquer un peu plus les deux paragraphes ci-dessous :
    - mettre à disposition en streaming vers le client le fichier, il te faut donc streamer le fichier directement dans la requête pour avoir la popup de télméchargement de fichier.
    La page web peut aussi être via servlet/JSP, la servlet chargeant la liste des fichier en ouvrant une connection FTP pour la connaitre

  7. #7
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    - mettre à disposition en streaming vers le client le fichier, il te faut donc streamer le fichier directement dans la requête pour avoir la popup de télméchargement de fichie
    Donc, tu ouvre un fichier via FTP, tu le lit, ensuite, pour le mettre à disposition du client, il faut que tu le 'stream' dans la requête. C'est à dire que tu ouvre l'OutputStream de la requête et que ensuite tu lise bit à bit le fichier récupéré via FTP pour l'écrire bit à bit dans la requête (ne pas oublie de préciser à la requête la taille du fichier que tu vas lui envoyer avant de l'envoyer sinon IE ne sera pas content)

    La page web peut aussi être via servlet/JSP, la servlet chargeant la liste des fichier en ouvrant une connection FTP pour la connaitre
    Ce que je propose là c'est de faire une servlet qui ouvre une connexion FTP vers ton server unix, récupère la liste des fichiers, puis les mets en attribut de requête. Ensuite, tout simplement, ta page JSP affiche la liste des fichiers qui se trouve dans le paramètre de requête avec un lien vers ta servelt de téléchargement pour chaqu'un!

  8. #8
    Débutant
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par woodwai
    Donc, tu ouvre un fichier via FTP, tu le lit, ensuite, pour le mettre à disposition du client, il faut que tu le 'stream' dans la requête. C'est à dire que tu ouvre l'OutputStream de la requête et que ensuite tu lise bit à bit le fichier récupéré via FTP pour l'écrire bit à bit dans la requête (ne pas oublie de préciser à la requête la taille du fichier que tu vas lui envoyer avant de l'envoyer sinon IE ne sera pas content)


    Ce que je propose là c'est de faire une servlet qui ouvre une connexion FTP vers ton server unix, récupère la liste des fichiers, puis les mets en attribut de requête. Ensuite, tout simplement, ta page JSP affiche la liste des fichiers qui se trouve dans le paramètre de requête avec un lien vers ta servelt de téléchargement pour chaqu'un!
    Est-ce que des fichiers de grandes taille peuvent facilement être téléchargés ? comme par exemple 300 MB ?

  9. #9
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    ça fait un max de données tout ça. faudrait programmer bit torrent...

  10. #10
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    Il n'y a pas à ma connaissance de limitation, mais effectivement, c'est beaucoup de donnée donc ça risque de prendre pas mal de temps en FTP. Mais le FTP est un protocole spécifique de transfert de fichier, beaucoup plus puissant que les transfert de type bitorent

  11. #11
    Débutant
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par woodwai
    Donc, tu ouvre un fichier via FTP, tu le lit, ensuite, pour le mettre à disposition du client, il faut que tu le 'stream' dans la requête. C'est à dire que tu ouvre l'OutputStream de la requête et que ensuite tu lise bit à bit le fichier récupéré via FTP pour l'écrire bit à bit dans la requête (ne pas oublie de préciser à la requête la taille du fichier que tu vas lui envoyer avant de l'envoyer sinon IE ne sera pas content)


    Ce que je propose là c'est de faire une servlet qui ouvre une connexion FTP vers ton server unix, récupère la liste des fichiers, puis les mets en attribut de requête. Ensuite, tout simplement, ta page JSP affiche la liste des fichiers qui se trouve dans le paramètre de requête avec un lien vers ta servelt de téléchargement pour chaqu'un!
    salut WoodWai

    Je trouve ta proposition intéressante, et j'aimerais savoir comment on pourrais transformer ceci en code java dans le baking bean.

    aussi quel objet est le plus utilisé (performant) pour le popup de téléchargement ?

  12. #12
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Points : 737
    Points
    737
    Par défaut
    De tête, je vais avoir du mal à te donner du code JAVA.

    En faite, le mieux est que tu regarde attentivement du coté des commons-net de Jakarta et des javax.servlet.

    Au sujet du téléchargement, il n'y a pas d'objet spécifique utilisé. Le principe est juste que tu utilise l'output stream de la requête et que tu y met ton fichier bit à bit après avoir spécifié le type du ficher dans le content-type de la requête et la taille du fichier dans le content-length. Tu peut faire un recherche sur ce forum je suis sûr que tu trouvera le code nécessaire pour écrire un ficher dans le requête.

    Ensuite, le browser web de lui-même, proposera une popup de téléchargement car il recevra une requête contenant un fichier.

  13. #13
    Débutant
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par woodwai
    Il n'y a pas à ma connaissance de limitation, mais effectivement, c'est beaucoup de donnée donc ça risque de prendre pas mal de temps en FTP. Mais le FTP est un protocole spécifique de transfert de fichier, beaucoup plus puissant que les transfert de type bitorent
    est-il nécéssaire d'utiliser dans mon cas le protocole FTP ? qu'est ce quei en est pour les autres prtocoles ? comme HTTP .....

  14. #14
    Débutant
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par woodwai
    De tête, je vais avoir du mal à te donner du code JAVA.

    En faite, le mieux est que tu regarde attentivement du coté des commons-net de Jakarta et des javax.servlet.

    Au sujet du téléchargement, il n'y a pas d'objet spécifique utilisé. Le principe est juste que tu utilise l'output stream de la requête et que tu y met ton fichier bit à bit après avoir spécifié le type du ficher dans le content-type de la requête et la taille du fichier dans le content-length. Tu peut faire un recherche sur ce forum je suis sûr que tu trouvera le code nécessaire pour écrire un ficher dans le requête.

    Ensuite, le browser web de lui-même, proposera une popup de téléchargement car il recevra une requête contenant un fichier.
    Bonjour Woodwai

    Maintenant, J'ai un FTP qui marche bien mais il ne propose pas de popop de téléchargement. Ce qu'il fait, c'est écrire directement le fichier sur un répertoire de l'utilisateur (j'ai hardcodé ce répertoire dans le code, mais ce n'est pas la bonne manière car il faut donner le choix à l'utilisateur de choisir son répertoire de sauvegarde)
    Je suis aussi en train de faire un HTTP, celui-là au lieu de proposer une popup de téléchargement, il fait ouvrir le fichier sur la page web. Il faut probablement aller modifier l'entête du HTTP mais je ne sais pas comment.


    Voici ma configuration:

    Une machine A physique qui contient :
    1) un serveur de fichier
    2) un serveur web Apache
    3) un serveur web Tomcat

    Cette machine A est accessible par le réseau local (userid et mot de passe requis, mais je les ai hardcodé dans le code)
    Le fichier que je veux downloader se trouve sur la machine A

    As tu une idée ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/10/2010, 22h51
  2. Lire un fichier à partir d'une certaine position
    Par GreatDeveloperOnizuka dans le forum C#
    Réponses: 1
    Dernier message: 16/06/2009, 16h48
  3. Lire un fichier à partir des sources Includes
    Par Marley_T dans le forum C
    Réponses: 1
    Dernier message: 09/07/2008, 01h13
  4. Lire un fichier à partir de la fin
    Par jimmplan dans le forum Linux
    Réponses: 3
    Dernier message: 15/02/2008, 22h09
  5. [Servlet][EJB]lire un fichier à partir de mon bean
    Par kimausoleil dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/02/2004, 14h26

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