如果要获得上传文件的原始名称,需要定义一个String类型的属性,属性名必须为***FileName,其中***为File属性的名称;同理,如果要获取该文件的MIME类型,需要定义一个***ContentType的String属性

单个文件上传

public class UploadAction extends ActionSupport{

    private File image; //上传的文件
    private String imageFileName; //文件名称
    private String imageContentType; //文件类型

    public String execute() throws Exception {
        String realpath =ServletActionContext.getServletContext().getRealPath("/images");
        FileOutputStream fos = null;
        FileInputStream fis = null;
        try {
            // 建立文件输出流
            System.out.println(getSavePath());
            fos = new FileOutputStream(realpath+ "\\" + getImageFileName());
            // 建立文件上传流
            fis = newFileInputStream(getImage());
            byte[] buffer = new byte[1024];
            int len = 0;
            while ((len = fis.read(buffer))> 0) {
                fos.write(buffer, 0, len);
            }
        } catch (Exception e) {
            System.out.println("文件上传失败");
            e.printStackTrace();
        } finally {
            close(fos, fis);
        }
        return SUCCESS;
}

    public File getImage() {
        return image;
    }

    public void setImage(File image) {
        this.image = image;
    }

    public String getImageFileName() {
        return imageFileName;
    }

    public void setImageFileName(StringimageFileName) {
        this.imageFileName = imageFileName;
    }

    public String getImageContentType() {
        return imageContentType;
    }

    public void setImageContentType(StringimageContentType) {
        this.imageContentType = imageContentType;
    }

}

多个文件上传

import java.io.File;
import java.io.IOException;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class TagUploadListAction extends ActionSupport {
    private static final long serialVersionUID= 1L;
    private String name;

    // 上传多个文件的集合文本
    private List<File> upload;
    // /多个上传文件的类型集合
    private List<String>uploadContextType;
   // 多个上传文件的文件名集合
    private List<String> uploadFileName;

    public String getName() {
            return name;
     }
    public void setName(String name) {
       this.name = name;
    }
    public List<File> getUpload() {
       return upload;
    }
    public void setUpload(List<File>upload) {
       this.upload = upload;
    }
    public List<String>getUploadContextType() {
       return uploadContextType;
    }
    public voidsetUploadContextType(List<String> uploadContextType) {
       this.uploadContextType =uploadContextType;
    }
    public List<String>getUploadFileName() {
       return uploadFileName;
    }
    public voidsetUploadFileName(List<String> uploadFileName) {
       this.uploadFileName = uploadFileName;
    }
    public String execute() {

       // 把上传的文件放到指定的路径下
       String path =ServletActionContext.getServletContext().getRealPath(

              "/WEB-INF/uploadList");

       // 写到指定的路径中
       File file = new File(path);

       // 如果指定的路径没有就创建
       if(!file.exists()) {
           file.mkdirs();
       }

       // 把得到的文件的集合通过循环的方式读取并放在指定的路径下
       for (int i = 0; i < upload.size();i++) {
           try {
              //list集合通过get(i)的方式来获取索引
              FileUtils.copyFile(upload.get(i), new File(file,uploadFileName.get(i)));
           } catch (IOException e) {
              // TODO Auto-generated catchblock
              e.printStackTrace();
           }
       }
       return SUCCESS;
    }
}

最新文章

  1. oracle 创建用户
  2. JAVA-多屏幕显示
  3. html规范总结
  4. hdu 1527(威佐夫博奕)
  5. 数据校验validator 与 DWZ
  6. Firebug 调试技巧之console API
  7. Centos6.3 jekyll环境安装
  8. 泰泽新闻:英特尔三星双否认泰泽Tizen系统已死
  9. Webcast / 技术小视频制作方法——自己动手录制video轻松搞定
  10. 穷举 迭代 while
  11. 详解java设计模式之责任链模式
  12. 201521123022 《Java程序设计》 第十周学习总结
  13. nsqlookup_protocol_v1.go
  14. BZOJ_2440_[中山市选2011]完全平方数_容斥原理+线性筛
  15. Docker存储卷(V18.X)
  16. Ionic2 播放mp3功能实现
  17. hive 远程管理
  18. greenplum presto impala选型与测评
  19. Try .NET
  20. 2.登录linun 输入密码登录不进去 进入单用户模式 修改 然后reboot

热门文章

  1. poj 1046 ——Color Me Less
  2. [Luogu 2817]宋荣子的城堡
  3. [HAOI2009]逆序对数列
  4. 【BZOJ1040】【ZJOI2008】骑士
  5. LOJ #6119. 「2017 山东二轮集训 Day7」国王
  6. ●BZOJ 4541 [Hnoi2016]矿区
  7. ●BZOJ 3309 DZY Loves Math
  8. 中断下半部处理之tasklet
  9. Java多线程基础总结
  10. c语言3种链接属性: 外部(external), 内部(internal),无设置(none)