• struts2的多个文件上传


                成功效果图:                

    上篇文章描述了单个文件的上传和配置,下面主要讲解下不同的地方:

    index.jsp

     <head>  
        <script type="text/javascript">
            function check(){
                var file = document.getElementsByName("file");    
                var filename = document.getElementsByName("fileName");
                var filetype = document.getElementsByName("fileType");
                for(var i =0;i<file.length;i++){
                    if(file[i].value !=""){
                          var f = file[i].value ;     
                          var type = f.substr(f.lastIndexOf(".")).toLowerCase();
                        var name = f.substr(f.lastIndexOf("\"));
                        filename[i].value = name;
                        filetype[i].value = type;                        
                      }else{
                          alert("请选择文件");
                        return false;    
                      }        
                }
                return true;
            }
        </script>
      </head>
      
      <body>    
        <p>stuts 2 多文件上传实例 </p>
        ${requestScope.typeError}    
          <form action="/uploadMore.do" method="post" enctype="multipart/form-data" onsubmit="return check();">
           上传文件1:<input type="file" name="file" /><br>
                    <input type="hidden" name="fileType"/><br>
                    <input type="hidden" name="fileName"/><br>
         上传文件2:<input type="file" name="file" /><br>
                <input type="hidden" name="fileType"/><br>    
                <input type="hidden" name="fileName"/><br>
               <input type="submit" value="提交"/>
          </form>    
      </body>

    struts.xml

     <package name="uploadMoreFile" extends="struts-default">    
          <!--多文件上传  -->    
             <action name="uploadMore" class="com.nn.upload.UploadMoreAction" method="uploadMore">     
                 <interceptor-ref name="fileUpload">
                    <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/pjpeg</param>
                </interceptor-ref>
                <interceptor-ref name="defaultStack"/>           
                   <param name="savePath">/upload</param> <!-- 保存的真实路径 -->
                   <result name="success">/successMore.jsp</result>
                   <result name="input">/index.jsp</result>                              
             </action>
         </package>
    UploadMoreAction.java
    public class UploadMoreAction extends ActionSupport {
        private File[] file;
        private String[]  fileName;
        private String[] fileType;
     
        public String  uploadMore(){
            String realpath = ServletActionContext.getServletContext().getRealPath("/upload");        
            if (this.file.length > 0) {
                String[] name = this.getFileName();
                for(int i =0;i<file.length;i++){
                    SimpleDateFormat  df = new SimpleDateFormat("yyyyMMddHHmmss");          
                    name[i] = df.format(new Date())+name[i].substring(1); //获取文件名称,去掉,并添加时间
                    File savefile = new File(new File(realpath), name[i]);
                    if (!savefile.getParentFile().exists())
                        savefile.getParentFile().mkdirs();
                    try {
                        FileUtils.copyFile(file[i], savefile);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    ActionContext.getContext().put("message", "文件上传成功!");
                }
                //this.setFileName(name); 
            }
            return "success";
         }   
    }
    
    

    successMore.jsp

      <body>
          ${requestScope.message}<br>
        <s:iterator value="fileName" status="stuts"> 
             文件名称:  <s:property value="fileName[#stuts.index]"/><br>     
             文件为:   <img src="${pageContext.request.contextPath}/<s:property value="'upload/'+fileName[#stuts.index]"/>"><br>
        </s:iterator>
        <s:debug></s:debug>
      </body>

  • 相关阅读:
    利用Percona monitoring for zabbix监控MySQL
    SQL Server复制故障(1)
    SQL Server事务复制搭建与同步经验
    达梦7入门技术总结--DCA级别
    机器学习:双聚类算法
    脑洞篇之我们生活在9维世界
    自动化运维:使用flask+mysql+highcharts搭建监控平台
    深度学习:Keras入门(二)之卷积神经网络(CNN)
    深度学习:Keras入门(一)之基础篇
    机器学习:特征选择
  • 原文地址:https://www.cnblogs.com/estellez/p/3968194.html
Copyright © 2020-2023  润新知