Transfert de fichier via une appli web entre un client et le serveur d'applicati

Résolu
cs_acoue Messages postés 15 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 18 novembre 2005 - 17 nov. 2005 à 18:04
cs_japouni Messages postés 22 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 29 mai 2014 - 28 avril 2008 à 17:36
Bonjour à tous,



comme indiqué dans le titre,je dois faire un upload entre le disque dur du client et le serveur.

Mon idée avait été la suivante :

dans une jsp, à partir d'un imput type file dans un formulaire, je
récupérai le chemin du fichier à transférer (en local pour le client).

Une fois le formulaire de la jsp validé j'appellais une servlet qui
récupérait le chemin où le copier (sur le serveur) et je faisais une
copie de mon fichier.



Le seul problème et il est de taille c'est que le chemin source devient
un chemin local MAIS pour le serveur, donc l'upload n'est pas possible
car le fichier source ne s'y trouve pas.



Est ce que quelqu'un aurait une idée pour me dépanner.

Je travaille avec un serveur d'application IBM WEBSPHERE 5.0 sous Windows 2000.



Merci de m'aider.

2 réponses

cs_acoue Messages postés 15 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 18 novembre 2005
18 nov. 2005 à 16:01
Pour indication je viens de trouver la réponse donc je vais poster cette dernière si quelqu'un en a besoin :



Je récupère mon IP Client dans une servlet, la même qui me servait à faire ma copie.

Les info proviennent d'un formulaire (chemin du fichier).

Les variable sPath et fSource sont initialisées suivnat mon code mais dans une autre partie.



Voici le code :

...

//Recupératon du nom de fichier et construction du chemin de la cible

String sIpClient = "\\\" + req.getRemoteAddr();


sIpClient = sIpClient + "\" + req.getParameter("fichier") ;


//On remplace les : par $


int ipos = sIpClient.indexOf(":");


sIpClient = sIpClient.substring(0,ipos) + "$" + sIpClient.substring(ipos+1);



//On construit l'objet fichier à copier

File fSource = new File(sIpClient);

//On constuit l'objet fichier cible

sNomFichier = fSource.getName();

sCheminCible = sPath + sNomFichier;

File fCible = new File(sCheminCible);

if (copieFichier.copier(fSource, fCible)) {

//Retour

resp.sendRedirect("page voulue");

} else {

resp.sendRedirect("page d'erreur");

}

...

*********************************

Voici la methode qui me permet de copier



static public boolean copier(File source, File destination) throws Exception {



boolean resultat = false;

// Declaration des flux

java.io.FileInputStream sourceFile = null;

java.io.FileOutputStream destinationFile = null;



try {

// Création du fichier :

destination.createNewFile();



// Ouverture des flux

sourceFile = new java.io.FileInputStream(source);

destinationFile = new java.io.FileOutputStream(destination);



// Lecture par segment de 0.5Mo

byte buffer[] = new byte[512 * 1024];

int nbLecture;



while ((nbLecture = sourceFile.read(buffer)) != -1) {

destinationFile.write(buffer, 0, nbLecture);

}



// Copie réussie

resultat = true;

} catch (java.io.FileNotFoundException f) {

System.out.println("Erreur dans Copie - " + f.getMessage());

} catch (java.io.IOException e) {

System.out.println("Erreur dans Copie - " + e.getMessage());

} finally {

// Quoi qu'il arrive, on ferme les flux

try {

sourceFile.close();

} catch (Exception e) {

}

try {

destinationFile.close();

} catch (Exception e) {

}

}

return (resultat);

}

Cette source n'est pas de moi .. je le précise.



A bientôt
3
cs_japouni Messages postés 22 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 29 mai 2014
28 avril 2008 à 17:36
Bonjour;


juste une question .Est ce que il n'y a pas un probléme au niveau de axée depuis le serveure pour le post client afin de récupérer le fichier(question de partage de fichier).
merci


 
0
Rejoignez-nous