Onex ecstore多图片上传

Onex ecstore多图片上传

创建domfile.html

<div class="division" style="margin:0;position:relative">
    <!--flash按钮展示层-->
     <div class="clearfix">
         <span id="pic-uploader">
              <{button app="desktop" class="btn-upload" label=$___b2c="添加商品图片"|t:'b2c' icon="image_new.gif"}>
         </span>
     </div>
    <!--上传的图片展示层-->
     <div class="pic-area" id="pic-area">
         <input type="hidden" name="image_default" value="<{$goods.image_default_id}>" />
         <div id='all-pics' style="width:100%">
         <div class="gpic-box">
            <{include file="gimage.html" app='image'}>
         </div>
     </div>
</div>
<script>
//function setPos(){
 /*此处是加载文件上传表单<input type="file">
  *$('.std-upload-txt')[0].setStyle('top',$('pic-uploader').getPosition().y+$('main').getScroll().y);
  */     
//}
//window.addEvent('domready',function(){
//  setPos.periodical(200);
//});
//var goodsEditor = null;

var goodsEditFrame = (function(){
//  setPos();
 /**
   *此处是删除调用的事件+路径
   *goodsEditor = new ShopExGoodsEditor('gEditor',{imgtype:'<{$uploader}>',url:'<{$url}>',goods_id:'<{$goods.id}>'}); 
   */ 

  Ex_Loader('uploader',function(){
  /**
    *此处是弹出的浮动窗口中整个页面的最外层“<div id='add' >”
    *var main =$('add').getParent('.dialog-content-body').setStyle('position','relative');
    *console.info($('add').getParent('.dialog-content-body'));
    */
        new Swiff.Uploader( {
            allowDuplicates: true,
            verbose: true,
        //container:main,
        //flash上传保存路径
            url:'index.php?app=image&ctl=admin_manage&act=gimage_swf_remote&sess_id='+sess_id,
        //flash路径   
            path: '<{$file_dir}>/uploader.swf',   
        //允许上传的图片(文件)类型(若果想修改为上传多文件的,在这里加载你要上传的文件的后缀)            
            typeFilter: {
                'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'           
            },
        //图片大小的限制
            fileSizeMax:<{$IMAGE_MAX_SIZE}>,                                                     
            target:'pic-uploader',
            onSelect:function(rs){
                if(rs)
                rs.each(function(v){
                    if(v.size>this.fileSizeMax){
                        alert(v.name+'<{t}>\n\n文件超出大小<{/t}>');
                    };
                },this);
            },
            onSelectFail:function(rs){
                rs.each(function(v){
                    if(v.validationError=='sizeLimitMax'){
                        alert(v.name+'<{t}>\n\n文件超出大小<{/t}>');
                    };
                });
            },
            onSelectSuccess:function(rs){
                var PID='up_';
                var _this=this;
                rs.each(function(v,i){
                     new Element('div',{'class':'gpic-box','id':PID+v.id}).inject($('all-pics'));
                });
                this.start();
            },
            onFileOpen:function(e){
                $('up_'+e.id).setHTML('<em style="font-size:13px;font-family:Georgia;">0%</em>');
            },
            onFileProgress:function(e){
                $('up_'+e.id).getElement('em').set('text',e.progress.percentLoaded+'%');
            },
            onFileComplete: function(res){
                if(res.response.error){
                    return  new MessageBox.error('<{t}>文件<{/t}>'+res.name+'<{t}>上传失败<{/t}>');
                }
                $('up_'+res.id).setHTML(res.response.text);
                if(!$E('#pic-area .current')&&$E('#pic-area .gpic')){
                  $E('#pic-area .gpic').onclick();
                }
            }
        });

    });

})();
</script>

接下来我们从控制器中来调用此文件 调用index.php

<?php 
class test_ctl_admin_test extends desktop_controller{ 
    function index(){ 
        $this->finder('b2c_mdl_members', 
            array( 
                'title'=>'会员详细信息录入', 
                'actions'=>array( 
                    array( 
                        'label'=>app::get('useremail')->_('添加信息'), 
                        'icon' => 'add.gif', 
                        'href' => 'index.php?app=test&ctl=admin_test&act=add', 
                        'target'=>'_blank', 
                    ), 
                ), 
            ) 
        ); 
    } 

    function add(){ 
     /**此处sess_id的使用场景是:在弹出子窗口中调用domfile.html文件时传给siss_id的参数*/ 
       //$this->pagedata['ssid'] = kernel::single('base_session')->sess_id();    //可有可无 
         //此处必须有,他是flash的具体地址 
        $this->pagedata['file_dir'] = &app::get('image')->res_url; 
        //此处必须有,他是图片大小的限制 
        $this->pagedata['IMAGE_MAX_SIZE'] = 1024*1024*5; 
        $this->singlepage('upfile.html'); 

    } 
}

upfile.html

会员照片:<{include file="domfile.html"}>
下面是效果图:
1