struts2实现简单文件上传

Posted pclover11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2实现简单文件上传相关的知识,希望对你有一定的参考价值。

struts2 在内部已经帮我们做了很多封装的工作,我们只需要简单的写一些配置即可。

1 表单页面

    <form action="${pageContext.request.contextPath }/fileupload" method="post" enctype="multipart/form-data">
        <input type="file" name="filesrc" ><br>
        <input type="submit" value="提交">
        
    </form>

注意:要记住input type=file 的 name属性值,后台会用到

 

2 FileUploadAction 类来处理文件上传,将上传来的文件存放到upload 文件夹里

public class FileUploadAction extends ActionSupport {
    private File   filesrc;
    private String filesrcFileName;
    private String filesrcContentType;
    
    public File getFilesrc() {
        return filesrc;
    }
    public void setFilesrc(File filesrc) {
        this.filesrc = filesrc;
    }
    public String getFilesrcFileName() {
        return filesrcFileName;
    }
    public void setFilesrcFileName(String filesrcFileName) {
        this.filesrcFileName = filesrcFileName;
    }
    public String getFilesrcContentType() {
        return filesrcContentType;
    }
    public void setFilesrcContentType(String filesrcContentType) {
        this.filesrcContentType = filesrcContentType;
    }
    
    public String uploadFile(){
        String path = ServletActionContext.getServletContext().getRealPath("/upload");
        File destFile = new File(path, filesrcFileName);
        try {
            FileUtils.copyFile(filesrc, destFile);
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
        
        return SUCCESS;
    }
    
}

注意:所有与上传文件有关的域变量命名规则开始要使用 form 表单中的name属性值。比如要有一个文件对象,就是filesrc,如果想知道文件名,就是:filesrcFileName,其中后面的FileName是固定的。至此就可以将文件存放到upload文件夹中。

当然此处没有设置文件大小、类型等判断。

 

3 action的配置,和一般的action配置相同。就不写了。可以参考之前的博文。struts2开发流程及配置,域对象对数据存储的3种方式

 

4 使用配置文件设置上传文件类型,上传文件大小。修改配置文件struts.xml,主要的类:FileUploadInterceptor,要使用的拦截器是:fileUploadStack

      <action name="fileupload" class="com.baidu.action.fileupload.FileUploadAction" method="uploadFile">
            <interceptor-ref name="fileUpload">
                <param name="allowedExtensions">text,xml</param>
                <param name="maximumSize">1024</param>
            </interceptor-ref>
            <interceptor-ref name="defaultStack"></interceptor-ref>
        </action>

 

以上是关于struts2实现简单文件上传的主要内容,如果未能解决你的问题,请参考以下文章

struts2实现文件上传和下载

struts2中简单的文件上传

struts2实现文件上传下载

笨鸟先飞之Java--使用struts2框架实现文件上传

struts2开发文件上传下载的简单实例

Struts2学习—文件上传和下载