zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    PL/SQL developer连接oracle出现“ORA-12154:TNS:could not resolve the connect identifier specified”问题的解决
    POJ 1094-Sorting It All Out(拓扑排序)
    Windows剪贴板操作简单小例
    我的高效编程的秘诀--开发环境的重要性(IOS)
    js操作cookie的一些注意项
    解决 libev.so.4()(64bit) is needed by percona-xtrabackup-2.3.4-1.el6.x86_64案例
    my.cnf 详解
    keepalived的log
    keepalive配置mysql自动故障转移
    说说能量守恒定律
  • 原文地址:https://www.cnblogs.com/zhaopengcheng/p/6701902.html
Copyright © 2011-2022 走看看