zoukankan      html  css  js  c++  java
  • struts2多文件上传-2

        <!-- 多文件上传 -->
            <action name="UploadAction2_*" class="uploadfile.UploadAction2" method="{1}">
               <interceptor-ref name="defaultStack">
                  <!-- 允许文件类型 -->
                   <!--  <param name="fileUpload.allowedTypes">image/jpg,image/pjpeg,image/png</param> -->
                 <!-- 允许的文件后缀 -->
                 <param name="fileUpload.allowedExtensions">jpg,jpeg,gif,java,png</param> 
               </interceptor-ref>
               <result name="success" type="dispatcher">../MyJsp.jsp</result>
            </action>
    public class UploadAction2 extends ActionSupport{
    
        //表单上提供的字段
        private File[] myfile;
        //struts2在文件上传时提供的属性    
        private String[] myfileFileName;//上传的文件名。上传字段名称+FileName  注意大小写
        private String[] myfileContentType;//上传文件的MIME类型。上传字段名称+ContentType 注意大小写
        
        public String upload(){
    
            for (int i = 0; i < myfile.length; i++) {
                String path= myfile[i].getAbsolutePath();
                System.out.println("临时文件路径:"+path);
                System.out.println("文件名:"+myfileFileName);
                System.out.println("文件类型:"+myfileContentType);
            }
            //1.拿到ServletContext
            ServletContext servletContext = ServletActionContext.getServletContext();
            //2.调用realPath方法,获取根据一个虚拟目录得到的真实目录    
            String realPath = servletContext.getRealPath("/WEB-INF/file");
            System.out.println(realPath);
            //3.如果这个真实的目录不存在,需要创建
            File file = new File(realPath );
            if(!file.exists()){
                file.mkdirs();
            }
            //4.把文件存过去
            //拷贝:把文件的临时文件复制到指定的位置。注意:临时文件还在
            //FileUtils.copyFile(myfile, new File(file,myfileFileName));
    
            //剪切:把临时文件剪切指定的位置,并且给他重命名。 注意:临时文件没有了
            for (int i = 0; i < myfile.length; i++) {
                myfile[i].renameTo(new File(file,myfileFileName[i]));
            }
            return SUCCESS;
        }
        
        public File[] getMyfile() {
            return myfile;
        }
        public void setMyfile(File[] myfile) {
            this.myfile = myfile;
        }
        public String[] getMyfileFileName() {
            return myfileFileName;
        }
        public void setMyfileFileName(String[] myfileFileName) {
            this.myfileFileName = myfileFileName;
        }
        public String[] getMyfileContentType() {
            return myfileContentType;
        }
        public void setMyfileContentType(String[] myfileContentType) {
            this.myfileContentType = myfileContentType;
        }
    }
      <form  action="hello/UploadAction2_upload.action" enctype="multipart/form-data" method="post">
      文件1:<input name="myfile" value="请选择文件" type="file"><br>
      文件2:<input name="myfile" value="请选择文件" type="file"><br>
      <input type="submit" >
      <form>

    result:

  • 相关阅读:
    《海量数据库解决方式》读后感
    HDU-3533-Escape(BFS)
    (017)将一棵二叉查找树重构成链表(keep it up)
    hadoop招聘需求每天都在添加,短短半个月时间,需求量差点儿翻了一番,这是大数据要爆发的节奏么?
    关于Oracle安装完毕后,登录时遇到的错误的解决的方法
    C/C++产生随机数
    android手机SD卡中的android_secure目录
    【Unity Shaders】Lighting Models —— 衣服着色器
    ASM相关视图
    win2003的IIS無法使用,又一次安裝提示找不到iisadmin.mfl文件
  • 原文地址:https://www.cnblogs.com/Danial7777777/p/9156714.html
Copyright © 2011-2022 走看看