[AJAX] Sujet : Upload AJAX + JSP avec iframe et apache.commons.fileupload
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:
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:
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:
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...