begin process at 2008 08 28 15:56:42
1 233 196 membres
298 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : pb d'upload d'un fichier client=>serveur [ Divers / Général ] (hluder)

pb d'upload d'un fichier client=>serveur le 02/05/2008 11:54:14

hluder
Bonjour!!!
Alors voilà mon nouveau probleme!
Mon client m'envoi un fichier, je le récupère et je le copie sur mon serveur
TOut pourait bien aller sauf que... le fichier sur mon serveur est vide

voilà mon code:

File file = new File(uri);//fichier qu ej'ai récupéré du client
File file3=new File(fichier); // je crée un fichier sur le serveur

FileOutputStream file2=new FileOutputStream(file3);
byte[] tab = new byte[(int)file.length()];
FileInputStream fi = new FileInputStream(file);
DataInputStream di = new DataInputStream(fi);
di.readFully(tab, 0, (int)file.length());
file2.write(tab);
 
//je close tout
file2.close();
fi.close();
di.close();

//utilisation de mon file
int res=MailClient.envoyerMail(dest,objet,message,file3);

aucune erreur n'est générée dans mon try-catch

Merci
------------------------
Nivraë - just her

Re : pb d'upload d'un fichier client=>serveur le 02/05/2008 13:00:05

shaiulud
re bonjour,
je te suis depuis ton dernier post,

je te conseille d'utiliser l'API FileUpload d'apache.

Re : pb d'upload d'un fichier client=>serveur le 02/05/2008 14:00:02

hluder
Je ne connais pas cet api ...
Elle sert à quoi ?
et tu l'utilise comment?

(merci de tes réponses)

Nivraë - just her

Re : pb d'upload d'un fichier client=>serveur le 04/05/2008 12:58:05

shaiulud
ette API est dispo ici : http://commons.apache.org/fileupload/
Elle permet de récupérer des fichiers envoyées depuis une page web avec la balise input type=file

la doc est ici : http://commons.apache.org/fileupload/using.html

et les points inportant sont :
 - le formulaire en HTML
<form action="upload.do" method="POST"  enctype="multipart/form-data">
   <imput type="file" name="monFichier">


 - le code java
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();

// Set factory constraints
factory.setSizeThreshold(yourMaxMemorySize);
factory.setRepository(yourTempDirectory);

// Create a new fileupload handler
ServletFileUpload upload = new ServletFileUpload(factory);

// Set overall request size constraint
upload.setSizeMax(yourMaxRequestSize);

// Parse the request
List /* FileItem */ items = upload.parseRequest(request);// request est une instance de HttpServletRequest (diponible depuis le doGet ou le doPost de la servlet)

// .... traitement de contolez cf. doc

// Ecriture du fichier sur le serveur
File uploadedFile = new File(...);
item.write(uploadedFile);


Re : pb d'upload d'un fichier client=>serveur le 05/05/2008 09:37:44

hluder
Oula euh je me sens un peu a la ramasse

une API sa consiste en quoi? Est ce qu'il y a quelque chose a installer (source-binaire c'est quoi tout ça??)?

Je n'ai jamais utilisé d'API...

action="upload.do"  ?? pourquoi "upload.do" et pas ma servlet?



Nivraë - just her

Re : pb d'upload d'un fichier client=>serveur le 05/05/2008 09:44:49

hluder
Et aussi dans le code que tu m'a mis après, où est ce que tu récupère la valeur du "include type="file" name="monfichier" ??

Nivraë - just her

Re : pb d'upload d'un fichier client=>serveur le 05/05/2008 13:20:55

shaiulud
pour l'FileUpload, tu télécharge le jar sur lr site d'appache e tu le rajoute à ton class path (les lib de ton projet).

action="upload.do"   est en struts, ça peut être ta servlet => action="maServlet"

c'est en iterant ici :
List /* FileItem */ items = upload.parseRequest(request);

je te conseille de lire la documentation sur le site apache, et si je me rapelle bien il y a des exemples (sample in english).


Re : pb d'upload d'un fichier client=>serveur le 05/05/2008 13:53:25

hluder
Lut je m'enterre tellement sa m'enerve

Alors j'ai lu sur le net que je devais mettre a part mon upload de fichier (lui fair eun <form> rien qu'à lui

Mais le pb est : oui mais comment je fais pour valider les autre champs alors??
enfin bon je vais essayer de tester des tones de chose, en meme temps j'ai que ça comme solution.

Inventerons t'il un jour la doc en français....


Merci à toi

Nivraë - just her

Re : pb d'upload d'un fichier client=>serveur le 05/05/2008 15:07:22

hluder
Bon jai un peu avancé mais j'ai uen erreur :
java.lang.NoSuchMethodError: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(Lorg/apache/commons/fileupload/RequestContext;)Ljava/util/List;

elle vient à cause de :

            List /* FileItem */ items = upload.parseRequest(request);

Nivraë - just her

Re : pb d'upload d'un fichier client=>serveur le 06/05/2008 10:19:16

hluder
Réponse acceptée !
Sa y est ça marche j'ai modifié le code en prenant un DiskFileUpload
Tout marche niquel!!


DiskFileUpload fu = new DiskFileUpload();
             // maximum size before a FileUploadException will be thrown
             fu.setSizeMax(1000000);
             // maximum size that will be stored in memory
             fu.setSizeThreshold(4096);
             // the location for saving data that is larger than getSizeThreshold()
             fu.setRepositoryPath("/tmp" );

             List fileItems = fu.parseRequest(request);
           
             Iterator i = fileItems.iterator();
             FileItem fi = (FileItem)i.next();
             // filename on the client
             String fileName = fi.getName();
             // save comment and filename to database
             System.out.println( "Description du fichier : "+fileName );
             // write the file
             File uploadfile=new File(fileName);
             fi.write(uploadfile);

voilà Merci encore de m'avoir guidé!

----------------------------

Nivraë - just her


Classé sous : fichier, file, serveur, client, close

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS