StrutsFileUpload
2008-02-23 09:20:31来源:互联网 阅读 ()
StrutsFileUpload
File Upload - Simple Example
HTML
This isn't specific to Struts, but gives a simple example of the HTML required to upload a single file.
Two things are needed in the html page. Firstly, the form needs to specify an enctype of multipart/form-data and secondly an form control of type file.
JSP
The above HTML can be generated using the Struts tags in the following way
<html:form action="/uploadMyFile.do" enctype="multipart/form-data">
Select File: <html:file property="myFile">
<html:submit value="Upload File"/>
</html:form>
ActionForm
The ActionForm needs a property of type FormFile.
Regular ActionForms
import org.apache.struts.upload.FormFile;
public class MyActionForm extends ActionForm {
private FormFile myFile;
public void setMyFile(FormFile myFile) {
this.myFile = myfile;
}
public FormFile getMyFile() {
return myFile;
}
}
Dyna ActionForms
In the struts-config.XML
<form-bean name="myForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="myFile" type="org.apache.struts.upload.FormFile"/>
</form-bean>
Whats Needed in the Action
Nothing special really, just retrieve the FormFile from the ActionForm, as you would any other property, and process it as you like. You can get the file name, size and file contents from the FormFile.
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
MyActionForm myForm = (MyActionForm)form;
// Process the FormFile
FormFile myFile = myForm.getMyFile();
String contentType = myFile.getContentType();
String fileName = myFile.getFileName();
int fileSize = myFile.getFileSize();
byte[] fileData = myFile.getFileData();
...
}
File Upload Configuration
The following parameters can be set in the <controller> element of the struts-config.xml to configure file upload:
bufferSize - The size (in bytes) of the input buffer used when processing file uploads. Default is 4096.
maxFileSize - The maximum size (in bytes) of a file to be accepted as a file upload. Can be expressed as a number followed by a "K", "M", or "G", which are intERPreted to mean kilobytes, megabytes, or gigabytes, respectively. Default is 250M.
multipartClass - The fully qualified Java class name of the multipart request handler class to be used with this module. Defaults is org.apache.struts.upload.CommonsMultipartRequestHandler.
tempDir - Temporary working directory to use when processing file uploads.
Above taken from the Configuration section in the User Guide.
Plugging in an Alternative File Upload Mechanism
By default Struts uses Commons File Upload.
Alternative implementations can be plugged as long as they implement the org.apache.struts.upload.MultipartRequestHandler interface and Struts configured to use that implementation by specifying it in the multipartClass parameter in the <controller> element of the struts-config.xml
Fair Warning: The MultipartRequestHandler interface is almost certain to change in a Struts 1.3 or higher release.
上一篇: OSWorkflow深入分析 - 重新定义Configuration接口
下一篇: Java关键字: transient | strictfp | volatile
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash