Bonsoir à tous,

Comme indiqué dans le sujet, je cherche à uploader un fichier client par Ajax avec l'API commons.FileUpload
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
   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()) {
    String name = item.getFieldName();
    String value = item.getString();
    } else {
    String fieldName = item.getFieldName();
    String fileName = item.getName();
    String contentType = item.getContentType();
    boolean isInMemory = item.isInMemory();
    long sizeInBytes = item.getSize();
    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...