OpenFile文件選取

2018-02-07 14:51 更新
  • 函數(shù)原型

/* 文件選取

 * @string    type     操作類型,可用值open,save,saveto;默認(rèn)為open;

 * @string    title   窗體標(biāo)題,打開、保存、另存為;

 * @object    exts     可選取的文件類型,不是要求的類型不顯示;

 * @object    params   回調(diào)參數(shù),一些需要傳遞給回調(diào)函數(shù)的參數(shù)可用通過此參數(shù);bz='all':所有盤;bz='':僅本地盤;bz='盤標(biāo)志符(如baiduPCS)' 只打開此標(biāo)志符的盤(百度網(wǎng)盤)

 * @array     topfid   打開的目錄,是從要打開的目錄到根目錄的fid數(shù)組;

 * @function  callback 回調(diào)函數(shù);

*/

function OpenFile(type,title,exts,params,callback,topfid)

{

_config.selectall.icos=[];

if(type!='open' && type!='save' && type!='saveto') type='open'; 

if(!params) params={};

if(type=='save' || type=='saveto') params.multiple=false; //保存時不能多選

if(_window.windows['_W_openfile']) _window.windows['_W_openfile'].Close();

var win=_window.OpenFile(type,exts,title,params,topfid,windows['OpenFile'].features);

win.OnOK = function(){

var name=document.getElementById('file_select_input').value;

if(type=='open'){ //打開文件

if(document.getElementById('file_select_input').value=='' ){

Alert('請選擇文件!');

return ;

}else if(checkeURL(name)){//為網(wǎng)絡(luò)地址時

                                  params.multiple=false;

  params.ishref=1;

  var data={'params':params,'icodata':{'url':name,'name':name.substr(name.lastIndexOf('/')+1)}};

 

}else if(_file.selected.length<1){//未選擇文件

Alert('請選擇文件!');

return ;

}else{ 

var data={};

var icosdatas=[];

for(var i in _file.selected){

icosdatas[i]=_config.sourcedata.icos[_file.selected[i]];

}

data.params=params;

if(params.multiple) data.icodata=icosdatas; //多選時返回數(shù)組

else data.icodata=icosdatas[0];  

data.position=_config.sourcedata.folder[win.fid].path;

}

}else if(type=='save' ||type=='saveto'){//保存

var data={};

name=name.replace(/"/g,'');

//假如選擇了文件 ,提示是否覆蓋保存;

if(name && _file.selected.length>0){

if(confirm(_lang.cover_confirm+'"'+name+'?"')){

data.icodata=_config.sourcedata.icos[_file.selected[0]];

}else{

return ;

}

}

if(document.getElementById('file_select_input').value=='' ){

Alert('請輸入文件名稱,或選擇已有的文件!');

return ;

}

data.filecode=document.getElementById('file_code_select').value;

data.params=params;

data.name=name;

data.position=_config.sourcedata.folder[win.fid].path;

}

if( typeof callback=='function') callback(data);

win.Close();

}

win.OnCANCEL = function(){

win.Close();

}

};


  • 詳細(xì)參數(shù)說明:

  1. type:打開文件類型,可用值(“open”打開,“save”保存,“saveto”另存為);

  2. title: 文件窗口標(biāo)題;

  3. exts:定義要打開的文件類型;

          結(jié)構(gòu)如:


{

  “image”:['圖像文件(*.JPG,*.JPEG,*.PNG,*.GIF)',['JPG','JPEG','PNG','GIF'],’selected’],

  ”video”:['視頻',['VIDEO','WAV','MID','RM','RMVB','RTSP','FLV','SWF','ASF','ASX','WMV','MMS','AVI','MPG','MPEG','MOV'],”]

};

exts的每條將在文件窗體中以下拉列表方式顯示;

exts的每條數(shù)組的說明:

                     0:顯示的文本;
                     1:定義的擴(kuò)展名數(shù)組,只有此擴(kuò)展名數(shù)組內(nèi)的文件才會顯示,數(shù)組為空,不限制擴(kuò)展名;特殊擴(kuò)展名有(VIDEO,IMAGE,LINK,ATTACH,APP,DZZDOC);各項(xiàng)請使用大寫;
                     2:值為“selected”,表示此項(xiàng)選中;

4. params:帶入的參數(shù),此對象將會放到回調(diào)函數(shù)的參數(shù)data.params;

結(jié)構(gòu)為對象:如{multiple:true,cmd:’insertvideo’,bz:'', ... } ;

multiple:true|flase   通知文件窗體是否允許多選;

bz: 盤標(biāo)志符,bz='all':所有盤;bz='':僅本地盤 ;bz='baiduPCS' 只打開百度網(wǎng)盤;


5. callback:回調(diào)函數(shù);唯一參數(shù)為data;

data的數(shù)據(jù)結(jié)構(gòu)

{

icosdata:[object,...] || object      multiple:true時  [object,...];

params :params                        接口中帶入的params參數(shù)原封不動帶回,以供回調(diào)函數(shù)使用;

position:                                    選擇的文件所在的目錄的fid;

filecode:UTF-8||GBK||BIG-5       用戶選擇的要保存的文件的編碼;默認(rèn)為UTF-8,此項(xiàng)只有在type為save或saveto時帶回;

name:如xxxx.txt                      用戶輸入的文件名和文件后綴名;

}

6. topfid: 默認(rèn)打開的目錄,是從要打開的目錄到跟目錄的fid數(shù)組;

7. 完整示例:

OpenFile(‘open’,'打開’,{“image”:['圖像文件(*.JPG,*.JPEG,*.PNG,*.GIF)', ['JPG','JPEG','PNG','GIF'],’selected’],”video”:['視頻', ['VIDEO','WAV','MID','RM','RMVB','RTSP','FLV','SWF','ASF','ASX','WMV','MMS','AVI','MPG','MPEG','MOV'],”]},{cmd:’insertimg’,multiple:true,bz:''},function(data){
        acceptdata(data); //根據(jù)需要自定義
});

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號