【struts2】文件上传

Action类:

package test;

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;

public class FileUpload {
    private File file;//和表单中的file name属性值相同,该文件为临时文件,不是在最终存储的文件
    private String fileFileName;//文件名,必须为上边定义的file名称(这里为file)+FileName的形式
    private String fileContentType;//文件的类型,必须为上边定义的file名称(这里为file)+ContentType的形式

    public File getFile() {
        return file;
    }

    public void setFile(File file) {
        this.file = file;
    }

    public String getFileFileName() {
        return fileFileName;
    }

    public void setFileFileName(String fileFileName) {
        this.fileFileName = fileFileName;
    }

    public String getFileContentType() {
        return fileContentType;
    }

    public void setFileContentType(String fileContentType) {
        this.fileContentType = fileContentType;
    }

    public String execute() throws IOException {
         String savePath = "C:/Files/java/workspace/框架测试/upload";//指定上传文件存放位置
            try{                         
                 File destFile  = new File(savePath, fileFileName);//最终生成的文件
                 FileUtils.copyFile(file, destFile);//复制文件到目标文件
             }catch(IOException e){
                e.printStackTrace();
                return "ERROR";
             }
        return "SUCCESS";
    }
}

struts.xml:

   <struts>
        <package name="test" namespace="" extends="struts-default">
        <!-- 包名自定 -->        
            <action name="FileUpload" class="test.FileUpload" method="execute">
                <result name="SUCCESS">/test.jsp</result>
                <result name="ERROR">/test2.jsp</result>
            </action>
         </package>
    </struts>

测试主页Index.jsp:

<s:form action="/FileUpload.action" method="post" enctype="multipart/form-data">
    <s:file name="file"></s:file>
    <s:submit></s:submit> 
</s:form>

上传成功页面test.jsp:

<h1>文件 <s:property value="fileFileName"/> 上传成功 </h1>

这里写图片描述


这里写图片描述

原文地址:https://www.cnblogs.com/cnsec/p/13286803.html