Bonsoir à tous,
Comme indiqué dans le sujet, je cherche à uploader un fichier client par Ajax avec l'API d'Apache.
Je débute à peine avec Ajax, mais ai lu sur différents sites que normalement Ajax ne permet pas l'envoi de fichier.
J'ai lu toutefois qu'il était possible de feinter en utilisant une iframe ( ça m'échappe pour le moment ).
J'essaie donc cette technique, mais sans résultat pour le moment
Voici donc mon code actuel :
- côte HTML :
Code :
- <FORM method="POST" name="ATTACHFORM" enctype="multipart/form-data; boundary=--_01C922E9.D3E367F0" target="myFrame" >
- <div id="NEW_FIC" style="display:'<%=displayNewFic%>';">
- <input size="1" id="newpj" name="newpj" onchange="submitDoc();" type="file"/>
- </div>
- </FORM>
- <iframe id="myFrame" name="myFrame"></iframe>
|
- côté js :
Code :
- function submitDoc()
- {
- http.open("POST", url , true);
- http.onreadystatechange = handleHttpResponse;
- http.setRequestHeader("Content-Type", "multipart/form-data; boundary=--_01C922E9.D3E367F0" );
- data = "noAD=test";
- http.send(data);
- }
|
- côté JSP :
Code :
- boolean isMultipart = ServletFileUpload.isMultipartContent(request);
- FileItemFactory factory = new DiskFileItemFactory();
- ServletFileUpload upload = new ServletFileUpload(factory);
- List items = upload.parseRequest(request);
- Iterator iter = items.iterator();
- while (iter.hasNext()) {
- FileItem item = (FileItem) iter.next();
- if (item.isFormField()) {
- ... } else {
- File uploadedFile = new File(...);
- }
- }
|
Mon problème est donc que items est toujours de taille = 0.
Je ne sais pas si cela vient du boundary que je ne précise pas dans la récupération ( si oui comment faire ? ) ou alors si il y a qqchose à faire avec l'iframe en javascript...
Merci à l'avance pour toute aide, je sèche complètement et ne veux me résilier à faire des allers-retours serveur...
---------------
The only survivor of the national peoples gang