Class JakartaStreamMultiPartRequest
java.lang.Object
org.apache.struts2.dispatcher.multipart.AbstractMultiPartRequest
org.apache.struts2.dispatcher.multipart.JakartaStreamMultiPartRequest
- All Implemented Interfaces:
MultiPartRequest
Multi-part form data request adapter for Jakarta Commons FileUpload package that
leverages the streaming API rather than the traditional non-streaming API.
For more details see WW-3025
- Since:
- 2.3.18
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Internal data structure used to store a reference to information needed to later pass post processing data to theFileUploadInterceptor
. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Map<String,
List<JakartaStreamMultiPartRequest.FileInfo>> Map between file fields and file data.Map between non-file fields and values.Fields inherited from class org.apache.struts2.dispatcher.multipart.AbstractMultiPartRequest
BUFFER_SIZE, bufferSize, defaultEncoding, defaultLocale, errors, maxFiles, maxFileSize, maxSize, maxStringLength, STRUTS_MESSAGES_UPLOAD_ERROR_PARAMETER_TOO_LONG_KEY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addFileSkippedError
(String fileName, jakarta.servlet.http.HttpServletRequest request) Add a file skipped message notification for action messages.void
cleanUp()
Cleans up all uploaded file, should be called at the end of requestprotected void
createFileInfoFromItemStream
(org.apache.commons.fileupload2.core.FileItemInput itemStream, File file) Creates an internalFileInfo
structure used to pass information to theFileUploadInterceptor
during the interceptor stack invocation process.protected File
createTemporaryFile
(String fileName, String location) Creates a temporary file based on the given filename and location.String[]
getContentType
(String fieldName) Returns the content type(s) of the file(s) associated with the specified field name (as supplied by the client browser), or null if no files are associated with the given field name.Returns aUploadedFile
object for the filename specified or null if no files are associated with the given field name.String[]
getFileNames
(String fieldName) Returns a String[] of file names for files associated with the specified input field nameReturns an enumeration of the parameter names for uploaded filesString[]
getFilesystemName
(String fieldName) Returns the file system name(s) of files associated with the given field name or null if no files are associated with the given field name.getParameter
(String name) Returns the specified request parameter.Returns an enumeration of String parameter names.String[]
getParameterValues
(String name) Returns a list of all parameter values associated with a parameter name.protected long
getRequestSize
(jakarta.servlet.http.HttpServletRequest request) protected boolean
isRequestSizePermitted
(jakarta.servlet.http.HttpServletRequest request) Defines whether the request allowed based on content length.void
protected void
processFileItemStreamAsFileField
(org.apache.commons.fileupload2.core.FileItemInput itemStream, String location) Processes the FileItemStream as a file field.protected void
processFileItemStreamAsFormField
(org.apache.commons.fileupload2.core.FileItemInput itemStream) Processes the FileItemStream as a Form Field.protected void
processUpload
(jakarta.servlet.http.HttpServletRequest request, String saveDir) Processes the upload.protected boolean
streamFileToDisk
(org.apache.commons.fileupload2.core.FileItemInput itemStream, File file) Streams the file upload stream to the specified file.Methods inherited from class org.apache.struts2.dispatcher.multipart.AbstractMultiPartRequest
buildErrorMessage, getCanonicalName, getErrors, setBufferSize, setDefaultEncoding, setLocale, setLocaleProviderFactory, setMaxFiles, setMaxFileSize, setMaxSize, setMaxStringLength
-
Field Details
-
fileInfos
Map between file fields and file data. -
parameters
Map between non-file fields and values.
-
-
Constructor Details
-
JakartaStreamMultiPartRequest
public JakartaStreamMultiPartRequest()
-
-
Method Details
-
cleanUp
public void cleanUp()Description copied from interface:MultiPartRequest
Cleans up all uploaded file, should be called at the end of request -
getContentType
Description copied from interface:MultiPartRequest
Returns the content type(s) of the file(s) associated with the specified field name (as supplied by the client browser), or null if no files are associated with the given field name.- Parameters:
fieldName
- input field name- Returns:
- an array of content encoding for the specified input field name or null if no content type was specified.
-
getFile
Description copied from interface:MultiPartRequest
Returns aUploadedFile
object for the filename specified or null if no files are associated with the given field name.- Parameters:
fieldName
- input field name- Returns:
- a UploadedFile[] object for files associated with the specified input field name
-
getFileNames
Description copied from interface:MultiPartRequest
Returns a String[] of file names for files associated with the specified input field name- Parameters:
fieldName
- input field name- Returns:
- a String[] of file names for files associated with the specified input field name
-
getFileParameterNames
Description copied from interface:MultiPartRequest
Returns an enumeration of the parameter names for uploaded files- Returns:
- an enumeration of the parameter names for uploaded files
-
getFilesystemName
Description copied from interface:MultiPartRequest
Returns the file system name(s) of files associated with the given field name or null if no files are associated with the given field name.- Parameters:
fieldName
- input field name- Returns:
- the file system name(s) of files associated with the given field name
-
getParameter
Description copied from interface:MultiPartRequest
Returns the specified request parameter.- Parameters:
name
- the name of the parameter to get- Returns:
- the parameter or null if it was not found.
-
getParameterNames
Description copied from interface:MultiPartRequest
Returns an enumeration of String parameter names.- Returns:
- an enumeration of String parameter names.
-
getParameterValues
Description copied from interface:MultiPartRequest
Returns a list of all parameter values associated with a parameter name. If there is only one parameter value per name the resulting array will be of length 1.- Parameters:
name
- the name of the parameter.- Returns:
- an array of all values associated with the parameter name.
-
parse
public void parse(jakarta.servlet.http.HttpServletRequest request, String saveDir) throws IOException - Throws:
IOException
-
processUpload
protected void processUpload(jakarta.servlet.http.HttpServletRequest request, String saveDir) throws Exception Processes the upload.- Parameters:
request
- the servlet requestsaveDir
- location of the save dir- Throws:
Exception
-
isRequestSizePermitted
protected boolean isRequestSizePermitted(jakarta.servlet.http.HttpServletRequest request) Defines whether the request allowed based on content length.- Parameters:
request
- the servlet request- Returns:
- true if request size is permitted
-
getRequestSize
protected long getRequestSize(jakarta.servlet.http.HttpServletRequest request) - Parameters:
request
- the servlet request- Returns:
- the request content length.
-
addFileSkippedError
protected void addFileSkippedError(String fileName, jakarta.servlet.http.HttpServletRequest request) Add a file skipped message notification for action messages.- Parameters:
fileName
- file namerequest
- the servlet request
-
processFileItemStreamAsFormField
protected void processFileItemStreamAsFormField(org.apache.commons.fileupload2.core.FileItemInput itemStream) Processes the FileItemStream as a Form Field.- Parameters:
itemStream
- file item stream
-
processFileItemStreamAsFileField
protected void processFileItemStreamAsFileField(org.apache.commons.fileupload2.core.FileItemInput itemStream, String location) Processes the FileItemStream as a file field.- Parameters:
itemStream
- file item streamlocation
- location
-
createTemporaryFile
Creates a temporary file based on the given filename and location.- Parameters:
fileName
- file namelocation
- location- Returns:
- temporary file based on the given filename and location
- Throws:
IOException
- in case of IO errors
-
streamFileToDisk
protected boolean streamFileToDisk(org.apache.commons.fileupload2.core.FileItemInput itemStream, File file) throws IOException Streams the file upload stream to the specified file.- Parameters:
itemStream
- file item streamfile
- the file- Returns:
- true if stream was successfully
- Throws:
IOException
- in case of IO errors
-
createFileInfoFromItemStream
protected void createFileInfoFromItemStream(org.apache.commons.fileupload2.core.FileItemInput itemStream, File file) Creates an internalFileInfo
structure used to pass information to theFileUploadInterceptor
during the interceptor stack invocation process.- Parameters:
itemStream
- file item streamfile
- the file
-