struts结合uploadify.js--------------补:单文件,表单数据量少的时候上传

前提概要:必须动态设置业务所需值,经测试---1.好像只能直接写入,不能用jsonString这种参数  2.uploadify的上传多文件时,每个文件都会请求一次Action。总之,不适合做多文件并且表单参数较多的结合提交。如果仅有一个文件上传和少量的表单参数则比较适合


===================================================================================


struts 上传框架

 配置中 struts.xml
 <action name="saveNewsMainTypeAction!*" class="saveNewsMainTypeAction" method="{1}">
  <interceptor-ref name="fileUpload"/>  // struts.xml 中有着个拦截器的配置  上传文件用 默认是不加载的
  <interceptor-ref name="defaultStack"/>
  <result name="input">/signin.jsp</result>
  <result type="json">
   <param name="includeProperties">result</param>
  </result>
 </action>

========================================================================================

<!-- 引入文件上传js -->
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/uploadify/uploadify.css"/>
<script type="text/javascript" src="<%=request.getContextPath() %>/uploadify/swfobject.js"></script> 
<script type="text/javascript" src="<%=request.getContextPath() %>/uploadify/jquery.uploadify.v2.1.0.js"></script>

 

 

<script>

// 增加validate验证框架处理
$(function(){
    
       
    
     $("#form2").validate({
         rules : {
             typename : "required",
             info : "required"
            
            
            
            
         },
         messages : {
             typename : "<span style='color:red;font-size:12px'>新闻主类型不允许为空</span>",
             info : "<span style='color:red;font-size:12px'>新闻分类不允许为空</span>"
            
            
            
         },
         submitHandler : function(form){
           
        
          $.ajax({
                     type : "post",
                     url : "<%=request.getContextPath() %>/admin/saveNewsMainTypeAction!checkMainTypeExist.action",
                     data : "typename="+$("#typename").val(),
                    
                     beforeSend : function(XMLHttpRequest){
                        $("#showLoad").html("正在处理数据,请稍候");
                     },
                     success : function(data,textStatus){
                         //alert(data.result);
                         if(data.result=="haveMainType"){
                            
                             $("#typename").val("");
                             alert("新闻分类已经存在,不允许添加");
                            
                         }else{
                            
                             // 增加判断确认是否选择了文件
                             var num = $("#file").uploadifySettings('queueSize');
                             // 假如上传数量为1, 表示有选择了上传文件, 就采用uploadifyUpload上传文件同时上传普通数据
                             alert(num);
                             if(num == 1){
                              $('#file').uploadifySettings('scriptData',{'typename':$('#typename').val(),'info':$('#info').val()});
                                    $('#file').uploadifyUpload();
                                   }else{
                                       // 否则只需要上传普通数据, 采用基本ajax方式
                                       $.ajax({
                          type : "post",
                          url : "<%=request.getContextPath() %>/admin/saveNewsMainTypeAction!saveMainType.action",
                          data : "typename="+$('#typename').val()+"&info="+$('#info').val(),
                          beforeSend : function(XMLHttpRequest){
                             $("#showLoad").html("正在处理数据,请稍候");
                          },
                          success : function(data,textStatus){
                               //eval_r('var datas = '+data.result);
                            if(data.result=='saveSuccess'){
                                 alert("文本数据添加成功");
                            }else{
                                 alert("文本数据添加失败");
                            }
                            $("#form2").clearForm();
                             
                          },
                          error : function(XMLHttpRequest, textStatus, errorThrown){
                              alert("服务器出错,请稍候再进行操作");
                          },
                         
                          complete : function(XMLHttpRequest, textStatus){
                              $("#showLoad").html("");
                             
                          }
                   
               
                                    });
                                  }    
                         }
                       
                     
                     },
                     error : function(XMLHttpRequest, textStatus, errorThrown){
                         alert("服务器出错,请稍候再进行处理");
                     },
                    
                     complete : function(XMLHttpRequest, textStatus){
                        $("#showLoad").html("");
                     }
                    
                
          });
      }
    });

 

 

        
  $("#file").uploadify({  
                  
                'uploader'       : '<%=request.getContextPath() %>/uploadify/uploadify.swf',  
                'script'         : '<%=request.getContextPath() %>/admin/saveNewsMainTypeAction!saveMainType.action',
               
                'cancelImg'      : '<%=request.getContextPath() %>/uploadify/cancel.png',  
                'queueID'        : 'fileQueue', //和存放队列的DIV的id一致  
                'fileDataName'   : 'file', //和以下input的name属性一致  
                'auto'           : false, //是否自动开始  
                'multi'          : false, //是否支持多文件上传  
                'buttonText'     : 'Browse', //按钮上的文字  
                'simUploadLimit' : 1, //一次同步上传的文件数目  
                'sizeLimit'      : 20480, //设置单个文件大小限制  
                'queueSizeLimit' : 1, //队列中同时存在的文件个数限制  
                'fileDesc'       : '支持格式:jpg/gif/jpeg/png/bmp.', //如果配置了以下的'fileExt'属性,那么这个属性是必须的  
                'fileExt'        : '*.jpg;*.gif;*.jpeg;*.png;*.bmp',//允许的格式    
                onComplete: function (event, queueID, fileObj, response, data) {  
                    $('#fileQueue').appendTo('.files').text(response); 
                    //alert(response);  //{'result':'xxxx'}
                    eval_r('var datas = '+response);
                    if(datas.result=='saveSuccess'){
                         alert("文件及数据添加成功");
                    }else{
                         alert("文件及数据添加失败");
                    }
                    $("#form2").clearForm();
                  

                    
                },  
                onError: function(event, queueID, fileObj) {  
                    alert("文件:" + fileObj.name + "上传失败");  
                },  
                onCancel: function(event, queueID, fileObj){  
                    alert("取消了" + fileObj.name);  
                }  
      });
        

</script> 
<html>

  <input type="file" name="file" id="file" />

 

 <div id="fileQueue" style=""></div>            //文件队列

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值