使用Struts实现文件上传,格式限制,大小限制
来源:互联网 发布:js uikit miniui 编辑:程序博客网 时间:2024/05/21 17:25
前天项目中需要用到一个图片上传的功能,本来以为就是一个简单的对文件对象的一个流操作,非常简单。但着手开始写的时候才发现,以前了解的文件的上传和下载是基于Servlet实现对流文件的操作,本次项目中的控制器使用的Struts2,难道让允许在众多Action中夹杂上Servlet?即使我能做到这也不符合项目规约,记得以前在学习Struts2的时候提到过Struts2的几个核心jar包中就包括文件上传下载的jar包,但是从来没有用过。第一直觉就是去查Struts2的官方文档,但找了半天没有找到Struts2的AIP,网上大多数都Struts2的API就是将Struts2的官方文档转换成了chm格式。知道了Struts2有个文件上传下载的包,没用过,本来很简单的东西瞬间又变成的很复杂的东西。又开始了在网上的寻找。。。
不过功夫还是不负有心人,看了N多资料后。。。有了点自己小小的总结。
Struts2提供的文件上传下载确实呗简单。。。。
就以图片上除为例子:
核心代码就 3 句,其他全是围绕这3句核心代码写的,还有相应的geter和seter
Java代码 收藏代码
//1、得到图片将要写入的路径 String realPath = ServletActionContext.getServletContext().getRealPath("/images");//实际路径
Java代码 收藏代码
//2、创建一个在此路径下的文件 File saveFile = new File(new File(realPath),fileTestFileName); //在该实际路径下实例化一个文件
Java代码 收藏代码
//3、将上传文件复制到以上实例化的文件中,这部可能会抛出异常需要捕获 FileUtils.copyFile(fileTest, saveFile);
Java代码 收藏代码
package com.ibm.action; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class Upload extends ActionSupport{ private File fileTest; //接收这个上传的文件 private String fileTestFileName; //Struts2提供的格式,在文件名后+FileName就是上传文件的名字 public File getFileTest() { return fileTest; } public void setFileTest(File fileTest) { this.fileTest = fileTest; } public String getFileTestFileName() { return fileTestFileName; } public void setFileTestFileName(String fileTestFileName) { this.fileTestFileName = fileTestFileName; } @Override public String execute() throws Exception { String[] str = { ".jpg", ".jpeg", ".bmp", ".gif" }; //限定文件大小是4MB if(fileTest==null || fileTest.length()>4194304 ){ return "imageError"; } for (String s : str) { if (fileTestFileName.endsWith(s)) { String realPath = ServletActionContext.getServletContext().getRealPath("/images");//实际路径 File saveFile = new File(new File(realPath),fileTestFileName); //在该实际路径下实例化一个文件 //判断父目录是否存在 if(!saveFile.getParentFile().exists()){ saveFile.getParentFile().mkdirs(); } try { //执行文件上传 //FileUtils 类名 org.apache.commons.io.FileUtils; //是commons-io包中的,commons-fileupload 必须依赖 commons-io包实现文件上次,实际上就是将一个文件转换成流文件进行读写 FileUtils.copyFile(fileTest, saveFile); } catch (IOException e) { return "imageError"; } } } return "imageSuccess"; } } 这里写代码片
0 0
- 使用Struts实现文件上传,格式限制,大小限制
- struts2 文件上传 限制大小、格式
- struts上传文件限制
- javascript实现限制上传文件的大小
- javascript实现限制上传文件的大小
- javascript实现限制上传文件的大小
- struts上传多文件,限制单个文件大小及总大小
- 在使用struts框架时,如何改变上传文件总字节数限制大小
- asp.net FileUpload 上传文件的格式,大小的限制
- struts2限制文件上传的格式,大小配置
- Struts2 限制文件的上传格式和大小
- js上传文件(图片)限制格式及大小
- 文件上传完整实例(限制格式、大小)
- 解除文件上传大小限制
- 限制上传文件的大小
- 修改文件上传大小限制
- Struts2 文件上传大小限制
- Struts2文件上传大小限制
- [BZOJ 3295]动态逆序对
- 并查集基础
- 动态规划题目特性
- c/c++时间函数使用方法
- node.js用get方式获取网页中的链接
- 使用Struts实现文件上传,格式限制,大小限制
- 如何跳出嵌套多层的循环
- 个人所得税计算
- React-native 调用原生组件
- Context 是什么意思
- 数据结构基础 字符串相似度与最长公共子序列
- Java---StringBuffer()方法的简单应用
- C++成员变量的初始化顺序
- 【BZOJ1826】【tyvj2644】缓存交换,贪心+堆维护