Récuperer un fichier d'un serveur

Récuperer un fichier d'un serveur - Java - Programmation

Marsh Posté le 18-09-2008 à 12:03:31    

J'ai des fichiers dans un serveur dont on m'a donnée l'adresse. Je voudrai copier un des fichiers(qui est sur le serveur ) sur mon ordinateur avec l'adresse du serveur : \\Dossier1\MonDossier\.
Lorsque je tape cette adresse dans un explorateur windows il m'affiche tous les fichiers que contient "MonDossier" dans le serveur.
 
Je veux transférer le fichier Fichier1 qui est dans le serveur, avec cette adresse :\\Dossier1\MonDossier\Fichier1.doc
 
Quelqu'un saurait comment faire?Quel librairie utiliser?un exemple peut être....
 
Merci


---------------
Il ne faut pas vendre la peau avant de l'avoir tué
Reply

Marsh Posté le 18-09-2008 à 12:03:31   

Reply

Marsh Posté le 22-09-2008 à 17:32:59    

avec la librairie : jcifs http://jcifs.samba.org/
 
et voici un code d'exemple

Code :
  1. NtlmPasswordAuthentication npa = new NtlmPasswordAuthentication("", "nom utilisateur", "mot de passe" );
  2. SmbFile remote = new SmbFile("smb://192.168.0.1/c$/fichier.txt", npa);
  3. InputStream in = remote.getInputStream();
  4. ...


---------------
PUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDI
Reply

Marsh Posté le 23-09-2008 à 15:08:12    

Merci pour cette aide j'ai essayé cette methode mais il arrive pas à recuperer le fichier voila mon code

Code :
  1. NtlmPasswordAuthentication npa = new NtlmPasswordAuthentication("", "nom", "mdp" );
  2.             SmbFile remote = new SmbFile("smb:\\\\192.168.21.59\\Rep\\test.txt" );
  3.             InputStream is = remote.getInputStream();


 
Il y a peut être d'autre chose à faire?


---------------
Il ne faut pas vendre la peau avant de l'avoir tué
Reply

Marsh Posté le 24-09-2008 à 15:14:50    

si tu es 100% sous windows, t'as essayé un truc genre "file:////192.168.0.1//c$/fichier.txt" ?
http://java.sun.com/j2se/1.4.2/doc [...] /File.html : notes relatives aux chemins UNC

Message cité 1 fois
Message édité par brisssou le 24-09-2008 à 15:14:57

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 25-09-2008 à 09:51:37    

Oui j'ai déjà essayer de mettre file à la place de smb mais j'ai fait des recherches sur le net j'ai vu quelques fois apparaitre cette méthode setProperty mais je sais pas comment l'utiliser


---------------
Il ne faut pas vendre la peau avant de l'avoir tué
Reply

Marsh Posté le 25-09-2008 à 11:19:59    

de quoi tu parles ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 25-09-2008 à 16:29:21    

ksouna772302 a écrit :

Merci pour cette aide j'ai essayé cette methode mais il arrive pas à recuperer le fichier voila mon code

Code :
  1. NtlmPasswordAuthentication npa = new NtlmPasswordAuthentication("", "nom", "mdp" );
  2.             SmbFile remote = new SmbFile("smb:\\\\192.168.21.59\\Rep\\test.txt" );
  3.             InputStream is = remote.getInputStream();


 
Il y a peut être d'autre chose à faire?


 
j'ai mis le code concernant la librairie de jcifs,
ensuite, après avoir eu le "inputstream", tu utilise l'api standard de java
 

Code :
  1. NtlmPasswordAuthentication npa = new NtlmPasswordAuthentication("", "nom", "mdp" );
  2. SmbFile remote = new SmbFile("smb://192.168.21.59/Rep/test.txt" );
  3. InputStream is = remote.getInputStream();
  4. FileOutputStream out = new FileOutputStream("c:\\destination.txt" );
  5. byte buffer[] = new byte[1024];
  6. int nb;
  7. while ((nb = is.read(buffer)) != -1) {
  8.       out.write(buffer, 0, nb);
  9. }
  10. is.close();
  11. out.close();

 
et évite de mettre des antislash quand il n'en faut pas
 

brisssou a écrit :

si tu es 100% sous windows, t'as essayé un truc genre "file:////192.168.0.1//c$/fichier.txt" ?
http://java.sun.com/j2se/1.4.2/doc [...] /File.html : notes relatives aux chemins UNC


j'ai déjà testé et ça ne marchait pas ...


---------------
PUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDIPUDDI
Reply

Marsh Posté le 25-09-2008 à 22:36:00    

si t'es sous windows, pour accéder un partage public, ça marche.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 26-09-2008 à 09:48:07    

Ouai c'est bien que frangelus me donne cette méthode car mon serveur est accessible par mot de passe et login, oui cela marche bien sur une méthode main.
 
Merci à vous 2
 
Un autre problème survient lorsque je fais ma propre méthode qui est la suivant :

Code :
  1. String fileName = "02-Analyse v1.0.doc";
  2.             NtlmPasswordAuthentication npa = new NtlmPasswordAuthentication("", "log", "mdp" );
  3.             SmbFile remote = new SmbFile("smb://falfs02/RT - Recrutment Tool/Docs/02-Analyse v1.0.doc", npa);
  4.             InputStream is = remote.getInputStream();
  5.             int nb = is.available();
  6.             byte[] contenu = new byte[nb];
  7.             is.read(contenu);
  8.             String contentType = "le mime-type du fichier";
  9.             HttpServletResponse response = (HttpServletResponse) ctx.getExternalContext().getResponse();
  10.             response.setHeader("Content-type", contentType);
  11.             response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
  12.             response.setContentLength(contenu.length);
  13.             ServletOutputStream out = response.getOutputStream();
  14.             out.write(contenu);
  15.             out.flush();
  16.             out.close();
  17.             ctx.responseComplete();


 
J'arrive à ouvrir le fichier mais il est vide, alors que dans la methode main j'ouvrai le fichier avec toutes ses informations.


Message édité par ksouna772302 le 26-09-2008 à 10:11:15

---------------
Il ne faut pas vendre la peau avant de l'avoir tué
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed