7777import java .util .Map ;
7878import java .util .Set ;
7979
80- import javax .servlet .ServletException ;
81- import javax .servlet .http .HttpServletRequest ;
82-
83- import org .apache .commons .fileupload .FileItem ;
84- import org .apache .commons .fileupload .FileItemFactory ;
85- import org .apache .commons .fileupload .FileUploadException ;
86- import org .apache .commons .fileupload .disk .DiskFileItemFactory ;
87- import org .apache .commons .fileupload .servlet .ServletFileUpload ;
80+ import org .apache .commons .fileupload2 .core .DiskFileItem ;
81+ import org .apache .commons .fileupload2 .core .DiskFileItemFactory ;
82+ import org .apache .commons .fileupload2 .core .DiskFileItemFactory .Builder ;
83+ import org .apache .commons .fileupload2 .core .FileUploadException ;
84+ import org .apache .commons .fileupload2 .jakarta .servlet6 .JakartaServletFileUpload ;
8885import org .cip4 .jdflib .datatypes .JDFAttributeMap ;
8986import org .cip4 .jdflib .util .ContainerUtil ;
9087import org .cip4 .jdflib .util .StreamUtil ;
9188import org .cip4 .jdflib .util .StringUtil ;
9289import org .cip4 .jdflib .util .UrlUtil ;
9390
91+ import jakarta .servlet .ServletException ;
92+ import jakarta .servlet .http .HttpServletRequest ;
93+
9494/**
9595 *
9696 * @author rainer
9797 */
9898public class FileItemList
9999{
100100
101- final private List <FileItem > fileItems ;
101+ final private List <DiskFileItem > fileItems ;
102102 private final JDFAttributeMap mapCache ;
103103 private final JDFAttributeMap reqParameters ;
104104
@@ -154,12 +154,13 @@ public FileItemList(final HttpServletRequest request, final long filesize) throw
154154 {
155155 mapCache = new JDFAttributeMap ();
156156 reqParameters = new JDFAttributeMap ();
157- fileItems = new ArrayList <FileItem >();
157+ fileItems = new ArrayList <DiskFileItem >();
158158 // Create a factory for disk-based file items
159- final FileItemFactory factory = getFactory (inMemory , filesize );
159+ final DiskFileItemFactory factory = getFactory (inMemory , filesize );
160160
161161 // Create a new file upload handler
162- final ServletFileUpload upload = new ServletFileUpload (factory );
162+ final JakartaServletFileUpload <DiskFileItem , DiskFileItemFactory > upload = new JakartaServletFileUpload <DiskFileItem , DiskFileItemFactory >();
163+ upload .setFileItemFactory (factory );
163164 if (request != null )
164165 {
165166 final Map <String , String []> parameterMap = request .getParameterMap ();
@@ -191,18 +192,18 @@ public FileItemList(final HttpServletRequest request, final long filesize) throw
191192 }
192193 }
193194
194- FileItemFactory getFactory (final boolean inMemory , final long filesize )
195+ DiskFileItemFactory getFactory (final boolean inMemory , final long filesize )
195196 {
196197 if (inMemory && filesize <= 1 )
197198 {
198199 throw new IllegalArgumentException ("cannot create in memory factory with low size " + filesize );
199200 }
200- final DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory ();
201+ final Builder b = DiskFileItemFactory . builder ();
201202 if (inMemory )
202203 {
203- diskFileItemFactory . setSizeThreshold ((int ) filesize );
204+ b . setBufferSize ((int ) filesize );
204205 }
205- return diskFileItemFactory ;
206+ return b . get () ;
206207 }
207208
208209 /**
@@ -215,8 +216,8 @@ public JDFAttributeMap getFieldsFromForm()
215216 {
216217 if (ContainerUtil .isEmpty (mapCache ))
217218 {
218- final List <FileItem > fileList = getFileList (false , true );
219- for (final FileItem fi : fileList )
219+ final List <DiskFileItem > fileList = getFileList (false , true );
220+ for (final DiskFileItem fi : fileList )
220221 {
221222 final String itemString = StringUtil .getNonEmpty (fi .getString ());
222223 if (itemString != null )
@@ -277,12 +278,12 @@ public boolean getBoolField(final String key, final boolean def)
277278 * @return
278279 *
279280 */
280- public List <FileItem > getFileList (final boolean bFile , final boolean bForm )
281+ public List <DiskFileItem > getFileList (final boolean bFile , final boolean bForm )
281282 {
282- final List <FileItem > retList = new ArrayList <FileItem >();
283+ final List <DiskFileItem > retList = new ArrayList <DiskFileItem >();
283284 if (bFile || bForm )
284285 {
285- for (final FileItem f : fileItems )
286+ for (final DiskFileItem f : fileItems )
286287 {
287288 final boolean formField = f .isFormField ();
288289 if (formField && bForm || !formField && bFile )
@@ -301,9 +302,9 @@ public List<FileItem> getFileList(final boolean bFile, final boolean bForm)
301302 * @param i may be<0 to count from end
302303 * @return
303304 */
304- public FileItem getFile (int i )
305+ public DiskFileItem getFile (int i )
305306 {
306- final List <FileItem > fileList = getFileList (true , false );
307+ final List <DiskFileItem > fileList = getFileList (true , false );
307308 if (i < 0 )
308309 {
309310 i += fileList .size ();
@@ -325,10 +326,10 @@ public FileItem getFile(int i)
325326 * @param formName
326327 * @return
327328 */
328- public FileItem getFile (final String formName )
329+ public DiskFileItem getFile (final String formName )
329330 {
330- final List <FileItem > fileList = getFileList (true , false );
331- for (final FileItem f : fileList )
331+ final List <DiskFileItem > fileList = getFileList (true , false );
332+ for (final DiskFileItem f : fileList )
332333 {
333334 if (f .getFieldName ().equalsIgnoreCase (formName ))
334335 {
@@ -347,7 +348,7 @@ public FileItem getFile(final String formName)
347348 */
348349 public InputStream getFileInputStream (final String formName )
349350 {
350- final FileItem fi = getFile (formName );
351+ final DiskFileItem fi = getFile (formName );
351352 return getInputStream (fi );
352353 }
353354
@@ -360,7 +361,7 @@ public InputStream getFileInputStream(final String formName)
360361 */
361362 public InputStream getFileInputStream (final int i )
362363 {
363- final FileItem fi = getFile (i );
364+ final DiskFileItem fi = getFile (i );
364365 return getInputStream (fi );
365366 }
366367
@@ -370,7 +371,7 @@ public InputStream getFileInputStream(final int i)
370371 * @param fi
371372 * @return
372373 */
373- public static InputStream getInputStream (final FileItem fi )
374+ public static InputStream getInputStream (final DiskFileItem fi )
374375 {
375376 if (fi != null )
376377 {
0 commit comments