Bonjour,

Je bloque depuis quelques jours usr un problème d'upload de fichier (j'y connais pas grand chose faut dire )

J'utilise pour cela la classe :
org.apache.commons.fileupload.servlet.ServletFileUpload.ServletFileUpload

Mon upload fonctionne avec des petits fichiers mais quand le fichier est trop gros (avec un fichier de 80ko sur mon serveur local et avec un fichier de 3ko sur la machine distante...), une exception est lancée :

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
 
org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
	at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:359)
	at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
	at ext.tdp.massdownload.MassDownloadJSPUtilBean.uploadCosFile(MassDownloadJSPUtilBean.java:519)
	at org.apache.jsp.netmarkets.jsp.ext.massdownload.FileUploader_jsp._jspService(FileUploader_jsp.java:1491)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at com.ptc.core.components.filter.JCARedirect.doFilter(JCARedirect.java:248)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at wt.httpgw.filter.WTContextBeanFilter.doFilterInternal(WTContextBeanFilter.java:69)
	at wt.httpgw.filter.WTContextBeanFilter.doFilter(WTContextBeanFilter.java:49)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at wt.servlet.RequestInterrupter.doFilter(RequestInterrupter.java:326)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at wt.servlet.ServletRequestMonitor.doFilter(ServletRequestMonitor.java:1013)
	at wt.servlet.ServletRequestMonitorFilter.doFilter(ServletRequestMonitorFilter.java:55)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly
	at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:964)
	at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:887)
	at java.io.InputStream.read(InputStream.java:89)
	at org.apache.commons.fileupload.util.Streams.copy(Streams.java:94)
	at org.apache.commons.fileupload.util.Streams.copy(Streams.java:64)
	at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:354)
	... 38 more
request headers:
	accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
	referer=http://p75.scorp.local:8090/tdp/netmarkets/jsp/ext/massdownload/FileChooser.jsp?searchSessionId=orgadmin_ff25dfb:129ac3191d5:-7fe4
	accept-language=fr
	content-type=multipart/form-data; boundary=---------------------------7daa3d1004ca
	accept-encoding=gzip, deflate
	user-agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; MS-RTC LM 8; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
	host=p75.scorp.local:8090
	content-length=94244
	connection=Keep-Alive
	Cache-Control=no-cache
	cookie=action_number=83; JSESSIONID=8135C5316AF3B1D79205DEFB2119B05A
	authorization=Basic b3JnYWRtaW46b3JnYWRtaW4=
	Max-Forwards=10
request parameters:
	searchSessionId=orgadmin_ff25dfb:129ac3191d5:-7fe4
Mon code qui permet mon upload est :

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
 
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
 
		if (isMultipart) {
 
			// Create a factory for disk-based file items
			DiskFileItemFactory factory = new DiskFileItemFactory();
			factory.setSizeThreshold(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD * 2);
 
			// Create a new file upload handler
			ServletFileUpload upload = new ServletFileUpload(factory);
 
			// Parse the request (**L'EXCEPTION EST LANCEE ICI**)
			List<FileItem> items = upload.parseRequest(request);
		}
Voilà je sais pas trop comment faire, j'ai essayé de voir les classes ServletFileUpload avec le debugger mais ça m'a pas appris grand chose...

Si quelqu'un a une idée, je suis preneur !

Merci !