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

NetBeans Java Discussion :

[Visual Web] Copier un fichier sur un répertoire du PC de l'utilisateur avec FTP et VWP


Sujet :

NetBeans 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 Copier un fichier sur un répertoire du PC de l'utilisateur avec FTP et VWP
    le fichier, au final, il doit être sur le PC de l'utilisateur de la page web, ou bien sur le serveur sur lequel tourne ton appli? Parce que là pour l'instant tu n'auras pas de boite "Save As" qui va s'ouvrir.
    Je veux l'avoir directement sur le pc de l'utilisateur. Pas besoin de le mettre sur le serveur web.

    Au clik du bouton de la page web, le bout de programme (FTP) sera exécuté et une boite "Save As" sera ouverte pour inviter l'utilisateur à accepter ou modifier le répertoire de réception du fichier.

    Si ce n'est pas possible d'ouvrir cette boite de "save us", on peut créer automatiquement un répertoire avec un nom unique sur le PC de l'utilisateur et mettre dedans le fichier qui a été téléchargé.

    Étant donné que les gros fichiers peuvent prendre jusqu'à 5 minutes pour le téléchargement, il serait utile d'afficher un progress bar qui va dissuader l'utilisateur et lui donner plus d'information (vitesse, taille, nom du fichier)

  2. #2
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Salut Diamonds,

    Il faut procéder comme je l'ai expliqué ici. La différence est que dans mon exemple, j'attribue l'URL spéciale à un objet Image de Creator, alors que pour ton lien cliquable il faudra l'affecter à un hyperlien ou a une image cliquable.

    Lorsque ton utilisateur cliquera sur l'hyperlien, le navigateur réagira comme il le fait d'habitude pour des fichiers de ce genre (par ex il demandera si on doit l'éxécuter ou bien le sauvegarder, et si l'utilisateur choisis sauvegarder alors il aura sa boite de dialogue "save as".).

    Valère
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  3. #3
    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 valered
    Salut Diamonds,

    Il faut procéder comme je l'ai expliqué ici. La différence est que dans mon exemple, j'attribue l'URL spéciale à un objet Image de Creator, alors que pour ton lien cliquable il faudra l'affecter à un hyperlien ou a une image cliquable.

    Lorsque ton utilisateur cliquera sur l'hyperlien, le navigateur réagira comme il le fait d'habitude pour des fichiers de ce genre (par ex il demandera si on doit l'éxécuter ou bien le sauvegarder, et si l'utilisateur choisis sauvegarder alors il aura sa boite de dialogue "save as".).

    Valère
    Pour bien m'expliquer voilà :

    Sur la page web, l'utilisateur va cliquer sur plusieurs dropdown. Je fais la concatenation des valeurs seléctionnées dans les dropdowns et je forme un nom de fichier.

    Au click d'un bouton sur la page web, ce nom de fichier sera envoyé (probablemt avec une partie de la page principale de FtpBean) pour aller vérifier si ce fichier existe sur le répertoire distant (Unix solaris).

    Si ce fichier existe, j'affiche un message à l'utilisateur pour lui demander de cliquer sur un autre bouton qui fera le téléchargement de ce fichier sur mon ordinateur.

    Résumé : deux méthodes qui seront déclenchées chacune au click d'un bouton séparemment.

    Méthode 1: vérifie si le fichier existe

    Méthode 2: fait le téléchargement


    Alors il n'y a plus de lien ou d'hyperlien.

  4. #4
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Tu ne peux pas avec le VWP déclencher le téléchargement d'un fichier depuis un bouton, il faut un lien vers une servlet qui est d'une certaine manière "extérieure" au VWP, car cliquer sur ce lien fera appel à une technologie Servlet tout à fait classique.

    Pour expliquer le problème, les boutons du VWP déclenchent une action dont le résultat ne peut être que l'envoi à l'utilisateur d'une page du VWP. Or toi tu veux renvoyer un fichier binaire.

    De plus il faut légèrement changer ton scénario:

    Action 1: vérifie si le fichier existe, et si oui fait le téléchargement par FTP du fichier pour le mettre en mémoire dans la session (voire en fichier sur le serveur hôte de tomcat, à voir avec la taille des fichiers à télécharger.)

    Action 2: le clic sur l'URL déclenche la servlet qui va récupérer en mémoire ou sur le disque du serveur le fichier, et le renvoyer via HTTP à l'utilisateur.

    Val
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  5. #5
    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 valered
    Tu ne peux pas avec le VWP déclencher le téléchargement d'un fichier depuis un bouton, il faut un lien vers une servlet qui est d'une certaine manière "extérieure" au VWP, car cliquer sur ce lien fera appel à une technologie Servlet tout à fait classique
    Mais la servlet dont tu me parle, c'est possible qu'il y en a une par défaut qui s'exécute à mon insus. Je dis ceci parce que j'ai créee un nouveau petit projet VWP dont lequel j'ai mis le code du J2SE de l'autre jour, et le téléchargement se fait bien dans le répertoire c:/temp de mon PC. (Avec une petite nuance, tous les fichiers qui se trouvent dans le répertoire distant ont été téléchargés)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    De plus il faut légèrement changer ton scénario:
     
    Action 1: vérifie si le fichier existe, et si oui fait le téléchargement par FTP du fichier pour le mettre en mémoire dans la session (voire en fichier sur le serveur hôte de tomcat, à voir avec la taille des fichiers à télécharger.)
     
    Action 2: le clic sur l'URL déclenche la servlet qui va récupérer en mémoire ou sur le disque du serveur le fichier, et le renvoyer via HTTP à l'utilisateur.
    Renvoyer un fichier de 1 Go par HTTP peut être long. Avec le J2SE, j'ai downloder un fichier de 1.2 Go et la durée était proche de 4 minutes (sans page web)

    Dans mon cas, tu veux dire, que lorsque je clique sur le premier bouton (action 1), le fichier sera télechargé sur le serveur, et puis un lien apparaitracsur ma page web et le cliquant, le fichier sera downloder sur ma machine ?

    Y a t-il pas un autre moyen de downloader le fichier directement du serveur Unix vers le PC de l'utilisateur ?

  6. #6
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Pas avec FTP dans ta configuration. FTP transfère entre 2 machines, ici tu en as trois.

    La solution serait d'avoir un serveur web (apache par ex) sur le serveur qui héberge tes gros fichiers. Les dropdowns divers permettraient de reconstruire l'URL du fichier à télécharger, mais ce serait un lien http tout à fait ordinaire, vers le serveur Apache de la 3ème machine.
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  7. #7
    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 valered
    Pas avec FTP dans ta configuration. FTP transfère entre 2 machines, ici tu en as trois.

    La solution serait d'avoir un serveur web (apache par ex) sur le serveur qui héberge tes gros fichiers. Les dropdowns divers permettraient de reconstruire l'URL du fichier à télécharger, mais ce serait un lien http tout à fait ordinaire, vers le serveur Apache de la 3ème machine.
    Supposons que le fichier cherché s'appelle "monfichier"

    Comment je vais transmettre ce nom par http ? y a-il quelque chose qui existe déjà.

  8. #8
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Citation Envoyé par diamonds
    Supposons que le fichier cherché s'appelle "monfichier"

    Comment je vais transmettre ce nom par http ? y a-il quelque chose qui existe déjà.
    On va faire plein d'hypothèse. Ton fichier se trouve sur /home/toto/mon/chemin/monfichier sur ton serveur Solaris (appelons le foobar). Si tu as un serveur apache configurer pour prendre /home/toto pour racine, alors ton URL serait http://foobar/mon/chemin/monfichier.

    Alors le boulot de la partie VWP est de reconstrure cette URL en fonction des infos de l'utilisateur, puis d'afficher ce lien à l'utilisateur. Il clique dessus, et alors ce n'est plus tomcat qui travaille mais le serveur apache, et hop, téléchargement du fichier.
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  9. #9
    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 valered
    On va faire plein d'hypothèse. Ton fichier se trouve sur /home/toto/mon/chemin/monfichier sur ton serveur Solaris (appelons le foobar). Si tu as un serveur apache configurer pour prendre /home/toto pour racine, alors ton URL serait http://foobar/mon/chemin/monfichier.

    Alors le boulot de la partie VWP est de reconstrure cette URL en fonction des infos de l'utilisateur, puis d'afficher ce lien à l'utilisateur. Il clique dessus, et alors ce n'est plus tomcat qui travaille mais le serveur apache, et hop, téléchargement du fichier.
    Ok je vais essayer ceci demain.
    Es tu sûr que http est le meilleur protocole dans ce cas ? je parle en terme de vitesse.

  10. #10
    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
    On va faire plein d'hypothèse. Ton fichier se trouve sur /home/toto/mon/chemin/monfichier sur ton serveur Solaris (appelons le foobar). Si tu as un serveur apache configurer pour prendre /home/toto pour racine, alors ton URL serait http://foobar/mon/chemin/monfichier.

    .
    Je sais que tomcat fonctionne avec windows et unix
    Est-ce que apache aussi ?

    Faut-il que le serveur web apache soit absolument sur le serveur unix qui contient le fichier cherché ?

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Points : 11 101
    Points
    11 101
    Par défaut
    Citation Envoyé par diamonds
    Je sais que tomcat fonctionne avec windows et unix
    Est-ce que apache aussi ?

    Faut-il que le serveur web apache soit absolument sur le serveur unix qui contient le fichier cherché ?
    oui.
    Si tu as un serveur apache configuré pour prendre /home/toto pour racine, alors ton URL serait http://foobar/mon/chemin/monfichier.
    Vincent Brabant

    Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  12. #12
    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 vbrabant
    oui.
    ok merci pour l'information.

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    On va faire plein d'hypothèse. Ton fichier se trouve sur /home/toto/mon/chemin/monfichier sur ton serveur Solaris (appelons le foobar). Si tu as un serveur apache configurer pour prendre /home/toto pour racine, alors ton URL serait <a href="http://foobar/mon/chemin/monfichier" target="_blank">http://foobar/mon/chemin/monfichier</a>.
    Si le serveur est configuré pour prendre /usr/tintin alors que mon fichier se trouve sur /home/toto/mon/chemin/monfichier. faut-il absolument dire à l'administrateur du système de le configurer sur /home/toto ou bien je peux écrire moi même l'adresse complète ?

  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 diamonds
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    On va faire plein d'hypothèse. Ton fichier se trouve sur /home/toto/mon/chemin/monfichier sur ton serveur Solaris (appelons le foobar). Si tu as un serveur apache configurer pour prendre /home/toto pour racine, alors ton URL serait <a href="http://foobar/mon/chemin/monfichier" target="_blank">http://foobar/mon/chemin/monfichier</a>.
    Si le serveur est configuré pour prendre /usr/tintin alors que mon fichier se trouve sur /home/toto/mon/chemin/monfichier. faut-il absolument dire à l'administrateur du système de le configurer sur /home/toto ou bien je peux écrire moi même l'adresse complète ?
    je viens de faire l'essai et voici ce que ça donne :

    Le serveur est configuré sur /Nathalie:8548/machin/index.html

    J'ai mis un fichier bidon xml qui ne respecte pas le format xml dans le répertoire Machin

    Sur une page web (VWP) j'ai mis un composant hyperlink et dans sa propriété j'ai mis : http://Nathalie:8548/Machin/monfichier.xml

    à l'exécution je recois l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    The XML page cannot be displayed 
     
    Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later. Invalid at the top level of the document. Error processing resource 'http://bilbo:8980/mm/toto.xml'. Line 1, Position 1 
    dcfdilhdvlsdvcv
    Il y a aussi un autre fichier qui s'appelle index.html

    Celui là s'exécute bien et affiche le contenu de ce fichier.

    Mais ce que moi je veux, ce n'est pas de les exécuter mais plutôt de les downloader.

    le serveur Web Apache et le les fichiers se trouvent sur la même machine physique.

  15. #15
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Aie je n'avais pas pensé ce pb: un navigateur va afficher du xml, effectivement...

    D'un autre côté, depuis le début on avait ce problème, quelle que soit la solution envisagée...

    Essaie de remplacer le http:// par ftp:// peut-être...

    Après je ne peux pas t'aider, il faudrait poser la question ou : comment télécharger un fichier xml pour le sauvegarder, et non l'afficher?
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  16. #16
    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 valered
    Aie je n'avais pas pensé ce pb: un navigateur va afficher du xml, effectivement...

    D'un autre côté, depuis le début on avait ce problème, quelle que soit la solution envisagée...

    Essaie de remplacer le http:// par ftp:// peut-être...

    Après je ne peux pas t'aider, il faudrait poser la question ou : comment télécharger un fichier xml pour le sauvegarder, et non l'afficher?
    Mais le fichier xml était qu'un exemple. D'habitude lorsqu'on télécharge des fichiers de l'internet, ces fichiers peuvent être de différents types (.exe .rar .zip .pdf ect.)

    Alors j'aimerais suivre le même principe.

  17. #17
    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 valered
    Aie je n'avais pas pensé ce pb: un navigateur va afficher du xml, effectivement...

    D'un autre côté, depuis le début on avait ce problème, quelle que soit la solution envisagée...

    Essaie de remplacer le http:// par ftp:// peut-être...

    Après je ne peux pas t'aider, il faudrait poser la question ou : comment télécharger un fichier xml pour le sauvegarder, et non l'afficher?
    Ok j'ai posté dans les deux autres forum aussi. Ne me dis pas que notre FTPBEAN ne sert à plus rien !!

    Merci.

  18. #18
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Si, il sert pour lister les possibilités à mettre dans les dropdown de la page VWP.

    Ouf
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  19. #19
    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 valered
    Si, il sert pour lister les possibilités à mettre dans les dropdown de la page VWP.

    Ouf
    Je ne suis pas certain de bien comprendre ce que tu dis. Les possibilités sont déjà dans les dropdowns.

  20. #20
    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 valered
    Si, il sert pour lister les possibilités à mettre dans les dropdown de la page VWP.

    Ouf
    Comment peut-on mettre ceci en java ?

    http://php.developpez.com/faq/?page=..._forcedownload

    Merci.

Discussions similaires

  1. Copier un fichier dans un répertoire?
    Par jbjweb dans le forum C
    Réponses: 5
    Dernier message: 05/09/2006, 15h34
  2. Copier un fichier sur un réseau
    Par Chess0 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 16/08/2006, 17h56
  3. Copier un fichier d'un répertoire à 1 autre
    Par Tunka dans le forum Windows
    Réponses: 4
    Dernier message: 30/05/2006, 09h41
  4. [CF][PPC]Comment copier un fichier sur un emulateur pocket?
    Par RiiiDD dans le forum Windows Mobile
    Réponses: 3
    Dernier message: 27/03/2006, 11h50
  5. Copier un fichier dans un répertoire
    Par soft damsel dans le forum Langage
    Réponses: 2
    Dernier message: 14/02/2006, 16h02

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