struts2 的文件上传
2014-02-15 22:55
309 查看
Struts2的文件上传:
在struts2-default中的默认配置文中,struts-default.xml,其中的defaultStack中,fileuploadinterceptor是默认的拦截器栈,所以在用户在客户端通过jsp页面请求服务器的Action时,就会通过这个fileuploadinterceptor拦截器,此时fileupload会将文件保存呢到指定的位置。但是其内部必须提供了相应的约束。
![](http://img.blog.csdn.net/20131115143527765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanVkeWZ1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1、编写文件上传页面
1) 必须input type="file" 有name属性
2) form提交方式 必须采用 post方式
3) enctype="multipart/form-data"
* multipart/form-data 来自MIME协议
------------------------------------- 分隔线
username = 123
-------------------------------------
文件上传内容
-------------------------------------
public class FileUploadAction extends ActionSupport{
// 接收文件上传的数据
private File upload ; // 和页面中的file标签的name属性名字必须相同
private String uploadContentType ; // 上传文件的类型 “file标签name属性名+ContentType”
private String uploadFileName ; //上传文件的名称 “页面的file标签name属性名+FileName”
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String execute() throws Exception {
System.out.println("文件上传、、、");
// 在web项目中 获得绝对路径
ServletContext context = ServletActionContext.getServletContext() ;
String uploadDir = context.getRealPath("/upload");
// 将文件写入到指定的目录
// 当经过默认拦截器的fileupInterceptor时候,已经将客户端要上传的文件上传到服务器的指定位置,文件的类型是File,要是想把文件保存到自己想保存的位置,
// 只需要用IO流将其封装(读取到流中,封装为InputStream),并用流写入到相应的目标位置即可。
InputStream in = new BufferedInputStream(new FileInputStream(upload));
OutputStream out = new BufferedOutputStream(new FileOutputStream(new File(uploadDir,uploadFileName)));
byte[] b = new byte[1024];
int len = -1 ;
while(( len = in.read(b)) != -1){
out.write(b, 0, len);
}
in.close();
out.close();
return SUCCESS ;
}
}
在struts2-default中的默认配置文中,struts-default.xml,其中的defaultStack中,fileuploadinterceptor是默认的拦截器栈,所以在用户在客户端通过jsp页面请求服务器的Action时,就会通过这个fileuploadinterceptor拦截器,此时fileupload会将文件保存呢到指定的位置。但是其内部必须提供了相应的约束。
1、编写文件上传页面
1) 必须input type="file" 有name属性
2) form提交方式 必须采用 post方式
3) enctype="multipart/form-data"
* multipart/form-data 来自MIME协议
------------------------------------- 分隔线
username = 123
-------------------------------------
文件上传内容
-------------------------------------
public class FileUploadAction extends ActionSupport{
// 接收文件上传的数据
private File upload ; // 和页面中的file标签的name属性名字必须相同
private String uploadContentType ; // 上传文件的类型 “file标签name属性名+ContentType”
private String uploadFileName ; //上传文件的名称 “页面的file标签name属性名+FileName”
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String execute() throws Exception {
System.out.println("文件上传、、、");
// 在web项目中 获得绝对路径
ServletContext context = ServletActionContext.getServletContext() ;
String uploadDir = context.getRealPath("/upload");
// 将文件写入到指定的目录
// 当经过默认拦截器的fileupInterceptor时候,已经将客户端要上传的文件上传到服务器的指定位置,文件的类型是File,要是想把文件保存到自己想保存的位置,
// 只需要用IO流将其封装(读取到流中,封装为InputStream),并用流写入到相应的目标位置即可。
InputStream in = new BufferedInputStream(new FileInputStream(upload));
OutputStream out = new BufferedOutputStream(new FileOutputStream(new File(uploadDir,uploadFileName)));
byte[] b = new byte[1024];
int len = -1 ;
while(( len = in.read(b)) != -1){
out.write(b, 0, len);
}
in.close();
out.close();
return SUCCESS ;
}
}
相关文章推荐
- java学习之 io编程(文件编程)
- 【Java基础】“数三退一”问题的代码实现
- java之LineNumberReader
- java jar 打包命令
- 【Java基础】选择排序、冒泡法排序、二分法查找
- java之PipedWriter和PipedReader
- 黑马程序员—jdk1.5新特性
- java判断文件编码格式
- Java相对路径/绝对路径总结
- Java生成和解析XML格式文件和字符串
- eclipse如何导入PHP的项目
- Spring基于XML配置事务
- java之DataInputStream和DataOutputStream
- java中thread的start()和run()的区别
- Java Caching JSR107介绍(三)
- java学习笔记<十>接口
- java学习笔记 异常知识小结
- myeclipse8.5 启动时不弹出工作空间的选择
- Java初始化(成员变量)
- java转移字符