struts2学习笔记--上传单个和批量文件示例
2016-02-15 22:11
465 查看
struts2提供了对上传文件的支持,将上传后的文件封装为java.io.File对象,开发者只需要在Action中定义一个File类型的变量,然后直接使用该变量,将它复制到目的目录即可.
action包下新建一个名为UpLoadAction的java类:
UpLoadAction
struts.xml不需要修改.
单个文件上传实例
` 下面是一个单个文件上传的小例子,webRoot下新建一个upLoad.jsp,核心代码为:<body> <!-- 必须将method指定为post,同时将enctype属性设置成如下形式, 第一个input中的name属性,值必须与Action中定义的Fil类型的变量名相同 --> <form action="upLoad.action" method="post" enctype="multipart/form-data"> 文件:<input type="file" name="picture"/><br> <input type="submit" value="上传"/> </form> </body>
action包下新建一个名为UpLoadAction的java类:
package com.wang.action; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class UpLoadAction extends ActionSupport{ //上传的文件,struts2会把文件封装为File对象 private File[] picture; //文件名,struts2会把文件名称设置到该变量 private String[] pictureFileName; //文件类型,struts2会把文件类型设置到该变量 private String[] pictureContentType; public String upLoad() throws IOException{ //获取request,进而获取文件的路径 HttpServletRequest request=ServletActionContext.getRequest(); String path=request.getRealPath("/aaa"); //最终将文件保存到/upload下 for(int i=0;i<picture.length;i++){ File saved=new File(path,pictureFileName[i]); InputStream is=new FileInputStream(picture[i]); OutputStream os=new FileOutputStream(saved); byte[] b=new byte[1024]; int len=0; while((len=is.read(b))!=-1){ os.write(b, 0, len); } is.close(); os.close(); } System.out.println("upLoad success"); return SUCCESS; } public File[] getPicture() { return picture; } public void setPicture(File[] picture) { this.picture = picture; } public String[] getPictureFileName() { return pictureFileName; } public void setPictureFileName(String[] pictureFileName) { this.pictureFileName = pictureFileName; } public String[] getPictureContentType() { return pictureContentType; } public void setPictureContentType(String[] pictureContentType) { this.pictureContentType = pictureContentType; } }
UpLoadAction
struts.xml不需要修改.
相关文章推荐
- 从头认识Spring-2.4 基于java的标准注解装配-@Inject(3)-通过构造器方法注入
- 原生态JAVAEE酒店管理系统系列一 之编码之前的环境准备
- 六种常用的设计模式java实现(一)工厂模式
- 从头认识Spring-2.4 基于java的标准注解装配-@Inject(2)-通过set方法或者其他方法注入
- spring简单概念
- MyEclipse 启动不了
- 从头认识Spring-2.4 基于java的标准注解装配-@Inject(1)-通过属性域注入
- Quartz与Spring的整合使用
- JAVA判断对象是不是属于哪一个类 instanceof , isInstance ,isAssignableFrom
- The Java™ Tutorials — Concurrency :Deadlock 死锁
- JAVA基础之泛型
- 如何在windows上使用eclipse远程连接hadoop进行程序开发
- 利用ParameterizedType获取java泛型参数类
- 线性表之顺序表--类似于java库中的ArrayList
- EJB--实体Bean
- java 是值传递还是引用传递
- 战五渣系列之六(5分钟还搞不懂多线程?)
- The Java™ Tutorials — Concurrency :Liveness 活跃度
- The Java™ Tutorials — Concurrency :Atomic Access 原子访问
- Spring笔记