读书人

Struts2实现下传文件

发布时间: 2012-10-06 17:34:01 作者: rapoo

Struts2实现上传文件

我用的版本是Struts2.1.8

?第一步:添加jar包commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar

?第二部:在index.jsp中添加如下代码:

??

 <form action="upload.action" method="post"  enctype="multipart/form-data">  上传文件:<input type="file" name="upload" /><br>    <input value="上传" type="submit" />  </from>

?

第三步:在struts.xml里配置如下:

     <!--指定文件临时存储空间 --> <constant name="struts.multipart.saveDir" value="/temp" /><constant name="struts.i18n.encoding" value="UTF-8"/><action name="upload" name="code">private File upload;private String uploadContentType;private String uploadFileName; private String savePath;public void setSavePath(String value){        this.savePath = value;} private String getSavePath() throws Exception {    return ServletActionContext.getRequest().getRealPath(savePath);    }public void setUpload(File upload) {  this.upload = upload; }public File getUpload() {return (this.upload); }public void setUploadContentType(String uploadContentType) {this.uploadContentType = uploadContentType; }public String getUploadContentType(){return (this.uploadContentType); }public void setUploadFileName(String uploadFileName) {this.uploadFileName = uploadFileName; }public String getUploadFileName() {return (this.uploadFileName); }@Override    public String execute() throws Exception{FileOutputStream fos = new FileOutputStream(getSavePath()+ "\\" + getUploadFileName());FileInputStream fis = new FileInputStream(getUpload());byte[] buffer = new byte[1024];int len = 0;while ((len = fis.read(buffer)) > 0){fos.write(buffer , 0 , len);}        return SUCCESS;    }

web.xm下新增如下代码:

<!-- 配置Struts2的CleanUp的Filter --><filter>         <filter-name>struts-cleanup</filter-name>         <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>     </filter><!-- 定义Struts2的CleanUp Filter拦截的URL --><filter-mapping>        <filter-name>struts-cleanup</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>

?

在项目下新建一个upload文件夹?

完成!!!

读书人网 >软件架构设计

热点推荐