xml 代码
- How do we upload files
- Edit Page Browse Space Add Page Add News
- Added by tm_jee, last edited by Ted Husted on Jan 28, 2007 (view change)
- You can obtain the MultipartRequestWrapper from the ServletActionContext or by utilizing the fileUpload interceptor. The fileUpload interceptor is preferred.
- Ask the ServletActionContext
- 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 enctype and specifies on or more file type inputs.
- <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.
- public void setMyDoc(File myDoc)
- public void setMyDocContentType(String contentType)
- public void setMyDocFileName(String filename)
- The Action may also provide the corresponding accessor methods.
- public File getMyDoc()
- public ContentType getMyDocContentType()
- public String getMyDocFileName()
- Handling multiple files
- When multiple files are uploaded by a form, the files are represented by an array.
- Given:
- <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.
- 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 javax.servlet.context.tempdir as defined by container
- 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