使用struts2上传文件,(单个上传和多个上传)

1,单个上传

File name 文件 必须和前台保持一致
* String nameFileName 名称FileName

* String nameContentType 名称ContentType

 enctype="multipart/form-data"必须要写表示文件上传

前台:

<form method="post" action="${pageContext.request.contextPath}/File/list" enctype="multipart/form-data">
    请选择上传的文件:<<input type="file" name="xls" >
    <input type="submit" value="文件上传">

后台:

package com.oracle.action;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

public class FileAction {
    private File xls;
    private String xlsFileName;
    private String xlsContentType;

    public File getXls() {
        return xls;
    }

    public void setXls(File xls) {
        this.xls = xls;
    }

    public String getXlsFileName() {
        return xlsFileName;
    }

    public void setXlsFileName(String xlsFileName) {
        this.xlsFileName = xlsFileName;
    }

    public String getXlsContentType() {
        return xlsContentType;
    }

    public void setXlsContentType(String xlsContentType) {
        this.xlsContentType = xlsContentType;
    }

    public String list() throws IOException {
        System.out.println(xls);
        System.out.println(xlsFileName);
        System.out.println(xlsContentType);
        //上传的路径 在webapp中建立一个Upload
        String path=ServletActionContext.getRequest().getSession().getServletContext().getRealPath("/Upload");
        int index=xlsFileName.lastIndexOf(".");
        String suffix=xlsFileName.substring(index,xlsFileName.length());
        //UUID表示每次生成不一样的数字
        FileUtils.copyFile(xls,new File(path, UUID.randomUUID().toString()+"."+suffix));
        return "list";
    }


}

2,多个文件上传

前台:

multiple="multiple"表示多个文件上传

<form method="post" action="${pageContext.request.contextPath}/MultiFile/list" enctype="multipart/form-data">
    请选择上传的文件:<<input type="file" name="xls" multiple="multiple" >
    <input type="submit" value="文件上传">

后台:

package com.oracle.action;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

public class MultiFileAction {
    private File[] xls;
    private String[] xlsFileName;
    private String[] xlsContenType;

    public File[] getXls() {
        return xls;
    }

    public void setXls(File[] xls) {
        this.xls = xls;
    }

    public String[] getXlsFileName() {
        return xlsFileName;
    }

    public void setXlsFileName(String[] xlsFileName) {
        this.xlsFileName = xlsFileName;
    }

    public String[] getXlsContenType() {
        return xlsContenType;
    }

    public void setXlsContenType(String[] xlsContenType) {
        this.xlsContenType = xlsContenType;
    }

    public String list(){
        String path= ServletActionContext.getRequest().getSession().getServletContext().getRealPath("/Upload");
        for(int i=0;i<xls.length;i++){
           int i1=xlsFileName[i].lastIndexOf(".");
           String suffix=xlsFileName[i].substring(i1+1,xlsFileName[i].length());
            try {
                FileUtils.copyFile(xls[i],new File(path, UUID.randomUUID().toString()+"."+suffix));
            } catch (IOException e) {
                e.printStackTrace();
            }

        }


        return "list";
    }

}

猜你喜欢

转载自blog.csdn.net/zyljjf/article/details/79821135