Struts2文件上传--上传图片文件
来源:互联网 发布:国培网络研修心得体会 编辑:程序博客网 时间:2024/04/29 23:16
原文地址:http://xiaotao-2010.iteye.com/blog/1059818
前天项目中需要用到一个图片上传的功能,本来以为就是一个简单的对文件对象的一个流操作,非常简单。但着手开始写的时候才发现,以前了解的文件的上传和下载是基于Servlet实现对流文件的操作,本次项目中的控制器使用的Struts2,难道让允许在众多Action中夹杂上Servlet?即使我能做到这也不符合项目规约,记得以前在学习Struts2的时候提到过Struts2的几个核心jar包中就包括文件上传下载的jar包,但是从来没有用过。第一直觉就是去查Struts2的官方文档,但找了半天没有找到Struts2的AIP,网上大多数都Struts2的API就是将Struts2的官方文档转换成了chm格式。知道了Struts2有个文件上传下载的包,没用过,本来很简单的东西瞬间又变成的很复杂的东西。又开始了在网上的寻找。。。
不过功夫还是不负有心人,看了N多资料后。。。有了点自己小小的总结。
Struts2提供的文件上传下载确实呗简单。。。。
就以图片上除为例子:
核心代码就 3 句,其他全是围绕这3句核心代码写的,还有相应的geter和seter
- //1、得到图片将要写入的路径
- String realPath = ServletActionContext.getServletContext().getRealPath("/images");//实际路径
- //2、创建一个在此路径下的文件
- File saveFile = new File(new File(realPath),fileTestFileName); //在该实际路径下实例化一个文件
- //3、将上传文件复制到以上实例化的文件中,这部可能会抛出异常需要捕获
- FileUtils.copyFile(fileTest, saveFile);
- 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";
- }
- }
- Struts2文件上传--上传图片文件
- Struts2文件上传--上传图片文件
- struts2文件和图片上传
- Struts2文件和图片上传
- Struts2上传图片文件失败
- struts2图片文件上传经验总结
- struts2文件上传图片中文乱码
- struts2上传文件(三) struts2上传文件
- Struts2的文件上传
- Struts2文件上传
- Struts2 上传文件实例
- struts2文件上传
- struts2文件上传
- Struts2的文件上传
- struts2-上传文件(1)
- struts2-上传文件(2)
- Struts2上传文件示例
- struts2文件上传
- 求质数(C++语言)
- 二进制包安装、查询、卸载
- Longest Consecutive Sequence
- cramfs文件系统移植经念总结
- 判断整数序列是不是二元查找树的后序遍历结果
- Struts2文件上传--上传图片文件
- WWW与不带WWW区别 用link rel="canonical"来避免搜索引擎抓取重复内容
- zoj1710
- 源码包安装
- 基于Eclipse的Hadoop应用开发环境配置
- 对日软件开发与外包——代码注释
- poj 2752 KMP
- 【leetcode】3Sum Closest
- 【设计模式】工厂模式