DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
You can obtain the MultipartRequestWrapper from the ServletActionContext or by utilizing the fileUpload interceptor. The fileUpload interceptor is preferred.
| Note |
|---|
See the file upload page for more examples and advanced configuration |
Ask the ServletActionContext
| Code Block |
|---|
MultipartRequestWrapper multipartRequest = ((MultipartRequestWrapper)ServletActionContext.getRequest()) |
The MultipartRequestWrapper provideds access methods such as getFiles, getFile, getContentType, hasErrors, getErrors, and so forth, so that you can process the file uploaded.
Utilize the fileUpload Interceptor
_Preferred_
- Ensure that {{fileUpload }} Interceptor is included in the Action's stack.
The default stack already includes {{fileUpload }}.
- Ensure that the HTML form sets the
enctypeand specifies on or more file type inputs.
| Code Block | ||||
|---|---|---|---|---|
| ||||
<form name="myForm" enctype="multipart/form-data">
<input type="file" name="myDoc" value="Browse ..." />
<input type="submit" />
</form>
|
- Ensure that the Action provides one or more fileUpload mutator methods, with names that correspond to name of the file type input.
| Code Block | ||||
|---|---|---|---|---|
| ||||
public void setMyDoc(File myDoc) public void setMyDocContentType(String contentType) public void setMyDocFileName(String filename) |
- The Action may also provide the corresponding accessor methods.
| Code Block | ||||
|---|---|---|---|---|
| ||||
public File getMyDoc() public String getMyDocContentType() public String getMyDocFileName() |
Handling multiple files
When multiple files are uploaded by a form, the files are represented by an array.
Given:
| Code Block | ||||
|---|---|---|---|---|
| ||||
<form name="myForm" enctype="multipart/form-data">
<input type="file" name="myDoc" value="Browse File A ..." />
<input type="file" name="myDoc" value="Browse File B ..." />
<input type="file" name="myDoc" value="Browse File C ..." />
<input type="submit" />
</form>
|
The Action class can define file handling methods that accept an array.
| Code Block | ||||
|---|---|---|---|---|
| ||||
public void setMyDoc(File[] myDocs) public void setMyDocContentType(String[] contentTypes) public void setMyDocFileName(String[] fileNames) |
The uploaded files can be handled by iterating through the appropriate array.
Extra Information
Property | Default |
|---|---|
struts.multipart.parser | Commons FileUpload |
struts.multipart.saveDir | |
struts.multipart.maxSize | Approximately 2M |
@see struts.properties
@see org.apache.struts2.dispatcher.FilterDispatcher#doFilter(SerlvetRequest, ServletRepsonse, FilterChain)
@see org.apache.struts2.dispatcher.DispatcherUtil#wrapRequest(HttpServletRequest, SerlvetContext)
@see org.apache.struts2.dispatcher.multipart.MultipartRequestWrapper
@see org.apache.struts2.interceptor.FileUploadInterceptor