Struts2文件上传
2015-10-13 08:45
369 查看
1.首先先到页面中定义一个表单,注意表单的enctype属性为multipart/form-data,method属性为post。
<s:form action="upload" method="post" enctype="multipart/form-data"> <s:file name="doc" label="docname"></s:file> <s:textfield name="docDesc" label="docdesc"></s:textfield> <s:submit value="提交"/> </s:form>2.然后就是Action的配置,在Action中定义File类型的成员,成员的名和表单中file中的name属性值相同,例如这里为doc,然后生成相应的getter,setter方法。如果要得到上传的文件名和文件类型,需要在Action中定义成员,成员名为表单中file的属性name的值加ContentType和FileName,例如这里是docContentType和docFileName,下面是Action中的代码
package com.seven.upload; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.commons.io.IOUtils; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class UploadAction extends ActionSupport { private File doc;//file属性的文件 private String docContentType;//文件的类型 private String docFileName;//文件的名称 public File getDoc() { return doc; } public void setDoc(File doc) { this.doc = doc; } public String getDocContentType() { return docContentType; } public void setDocContentType(String docContentType) { this.docContentType = docContentType; } public String getDocFileName() { return docFileName; } public void setDocFileName(String docFileName) { this.docFileName = docFileName; } public String execute() throws Exception { //获取要上传的文件路径 String dir=ServletActionContext.getServletContext().getRealPath("/files/"+docFileName); System.out.println(dir); //输入流 FileInputStream in=new FileInputStream(doc); //输出流 FileOutputStream out=new FileOutputStream(dir); IOUtils.copy(in, out); return super.execute(); } }其中IOUtils是有apache提供的一个类,在commons-io-2.0.1.jar这个包下。是针对IO流的一个类,其中copy方法需要两个参数,一个输入流和一个输出流,就可以完成IO流的操作。
相关文章推荐
- Spring相框:AOP详细说明
- struts2 拦截器
- 如何增强eclipse写代码时自动补全和自动提示功能
- [转]java的随机数生成原理
- eclipse webroot webcontent 路径修改 jsp相对路径
- java利用正则表达式验证邮箱
- Java字节码指令列表
- Spring MVC4.2.1 xml配置
- eclipse快捷键大全
- Maven 导出依赖Jar,生成source.jar,javadoc.jar
- java 调用 ffmpeg 进行视频转换以及截图
- JSP+Servlet+JavaBean实现登录网页实例详解
- Spring代理模式演变图
- java并发编程(二)对象的共享
- java并发编程(六)取消与关闭
- java 内存模型
- synchronized几种形式及其用途
- java在实际过程中遇到的一些小问题( 不断更新)
- 总结:SpringMVC 中 GET 和 POST 方式请求中的中文乱码问题
- Java系统时钟几个值得思考的问题