EXT+SWFUpload文件上传.docx

上传人:b****4 文档编号:3634932 上传时间:2022-11-24 格式:DOCX 页数:18 大小:22.25KB
下载 相关 举报
EXT+SWFUpload文件上传.docx_第1页
第1页 / 共18页
EXT+SWFUpload文件上传.docx_第2页
第2页 / 共18页
EXT+SWFUpload文件上传.docx_第3页
第3页 / 共18页
EXT+SWFUpload文件上传.docx_第4页
第4页 / 共18页
EXT+SWFUpload文件上传.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

EXT+SWFUpload文件上传.docx

《EXT+SWFUpload文件上传.docx》由会员分享,可在线阅读,更多相关《EXT+SWFUpload文件上传.docx(18页珍藏版)》请在冰豆网上搜索。

EXT+SWFUpload文件上传.docx

EXT+SWFUpload文件上传

服务器返回(PHP),其他的语言只要返回值为JSON就行

成功:

array('state'=>true,'info'=>'上传成功','servername'=>服务器保存的文件名(不带扩展名),'linkurl'=>保存路径,'filemaxid'=>公告记录ID(可以根据需要不用),'fileext'=>文件扩展名));

失败:

array('state'=>false,'info'=>错误信息));

如果要做为HTMLEDITOR的一个图标使用,加以下代码,在EXT-all-debug.js文件HTMLEDITOR控件内容中,具体位置找一下啰

注意要给HTMLEDITOR加个参数:

uploadfileConfig:

{}

tb.add('-',

{

itemId:

'uploadfile',

iconCls:

'uploadfile',

scope:

editor,

handler:

function(){

vartmpuploadwin=Ext.getCmp(this.id+'_uploadwin');

if(!

tmpuploadwin){

this.uploadfileConfig.upload_win_id=this.id+'_uploadwin';

this.uploadfileConfig.upload_type=1;//我用这个代表传文件,0-代表传图片

newExt.SWFUpload(this.uploadfileConfig);

}else{

tmpuploadwin.show();

}

},

tooltip:

{

title:

'插入附件',

text:

'在光标所在位置插入附件引用.',

cls:

'x-html-editor-tip'

}

}

在需要的地方引用:

xtype:

'htmleditor',

uploadfileConfig:

{upload_url:

处理文件上传后台保存的URL,file_size_limit:

文件大小限制,file_upload_limit:

上传文件数限制,del_datafile_url:

删除已上传文件的URL,del_datafile_params:

前面URL参数如'task=bulletin_delfile',post_params:

{传文件时需要传的参数,关键字和值都用引号引起来}},

代码(放EXT-all-debug.js最后):

Ext.SWFUpload=function(config){

Ext.apply(this,config);

varApplication={};

Application.uploadDialog={

upload_win_id:

this.upload_win_id,

upload_type:

this.upload_type,

del_datafile_url:

this.del_datafile_url,

del_datafile_params:

this.del_datafile_params,

SingleUpload:

false,//单个/多个文件上传模式

DeleteFileCount:

0,//删除已上传文件次数,限制小于或等于允许上传的文件数file_upload_limit,防止反复删除上传

UploadSuccessCount:

0,//真正上传到服务器上的文件数

FileMaxId:

'',//处理业务表的最大记录数

StopUpload:

false,//停止上传标志

progressBarText:

this.progressBarText,

statuBarText:

this.statuBarText,

upload_url:

this.upload_url,

file_size_limit:

this.file_size_limit,

file_types:

this.file_types,

file_types_description:

this.file_types_description,

file_upload_limit:

this.file_upload_limit,

file_queue_limit:

this.file_queue_limit,

button_image_url:

this.button_image_url,

button_placeholder_id:

this.button_placeholder_id,

button_width:

this.button_width,

button_height:

this.button_height,

button_cursor:

this.button_cursor,

button_window_mode:

this.button_window_mode,

flash_url:

this.flash_url,

post_params:

this.post_params,

custom_settings:

this.custom_settings,

debug:

this.debug,

show:

function(){

if(!

this.dialog)this.initDialog();

this.uploadAction[1].disable();

this.uploadAction[2].disable();

this.uploadAction[3].disable();

this.uploadAction[4].disable();

this.uploadAction[5].disable();

this.uploadAction[6].disable();

this.uploadAction[7].enable();

},

ok:

function(){

varrtnurl='';

varobj=Application.uploadDialog;

varstore=obj.uploadGrid.store;

varrowcount=store.getCount();

varfileexticon={'doc':

'word','dot':

'word','rtf':

'word','xls':

'excel','xlt':

'excel','xla':

'excel','xlw':

'excel','pdf':

'pdf','dll':

'dll',

'ppt':

'ppt','pot':

'ppt','pps':

'ppt','ppa':

'ppt','vsd':

'visio','vss':

'visio','vst':

'visio','rar':

'rar','zip':

'rar','swf':

'flash',

'htm':

'html','html':

'html','mht':

'html','mhtml':

'html','txt':

'text','log':

'text','sql':

'text','exe':

'exe','com':

'exe','bat':

'exe',

'bmp':

'picture','jpg':

'picture','jif':

'picture','jfif':

'picture','jpeg':

'picture','gif':

'picture','png':

'picture','emf':

'picture','ini':

'ini','cfg':

'ini',

'rle':

'picture','wmf':

'picture','dib':

'picture','mid':

'sound','midi':

'sound','mp3':

'sound','asf':

'sound','rm':

'sound'};

for(vari=0;i

varrec=store.getAt(i);

if(rec.data['uploaded']==1){

varfiletype=rec.data['filetype'].toLowerCase();

filetype=(fileexticon[filetype])?

fileexticon[filetype]:

'unknow';

//rtnurl=rtnurl+'

24px;font-size:

14px;line-height:

23px;">

file='+rec.data['linkurl']+rec.data['servername']+'.'+rec.data['filetype']+'">'+rec.data['linkname']+'  

12px">['+Ext.util.Format.fileSize(rec.data['size'])+']

';

rtnurl=rtnurl+'

24px;font-size:

14px;line-height:

23px;">

void(0);"onclick="fun_filedown(\'/bulletin/bulletin_readfile.html?

name='+encodeURIComponent(rec.data['linkname']+'.'+rec.data['filetype'])+'&path='+encodeURIComponent(rec.data['linkurl'])+'&file='+rec.data['servername']+'.'+rec.data['filetype']+'\')">'+rec.data['linkname']+'.'+rec.data['filetype']+'  

12px">['+Ext.util.Format.fileSize(rec.data['size'])+']

';

}

}

this.dialog.hide();

Ext.getCmp(this.dialog.id.substr(0,this.dialog.id.length-10)).insertAtCursor(rtnurl);

},

hide:

function(){

this.dialog.hide();

},

deletefile:

function(rec,store,obj){

if(rec.data.uploaded=='1'){//删除上传成功的文件,需要删除数据库信息和服务器文件

if(obj.DeleteFileCount>=obj.file_upload_limit){

msgbox('E','已达到上传文件删除次数限制!

');

returnfalse;

}

vardeltmpparams=obj.del_datafile_params+'&filepath='+rec.data.linkurl+'&filename='+rec.data.servername+'&fileext='+rec.data.filetype;

vardelinfo=fun_sync_exec(obj.del_datafile_url,deltmpparams);

delinfo=Ext.decode(delinfo);

if(delinfo.state==false){//后台删除失败

rec.set('state','4');

rec.set('errinfo',delinfo.info);

mitChanges();

returnfalse;

}else{//后台删除成功

obj.DeleteFileCount++;//增加删除次数

obj.UploadSuccessCount--;//减少真正上传数

obj.swfu.setStats({successful_uploads:

obj.UploadSuccessCount});//减少SWF真正上传数

obj.swfu.cancelUpload(rec.data.id,false);

store.remove(rec);

}

}else{//删除未上传或未成功的文件

obj.swfu.cancelUpload(rec.data.id,false);

store.remove(rec);

}

obj.stateInfo.getEl().innerHTML=String.format(obj.statuBarText,store.getCount(),Ext.util.Format.fileSize(store.sum('size')));

if(store.getCount()==0){

store.removeAll();

obj.uploadProgressBar.updateProgress(0,'');

obj.uploadProgressBar.updateText('');

obj.swfu.setButtonDisabled(false);

obj.uploadAction[1].disable();

obj.uploadAction[2].disable();

obj.uploadAction[3].disable();

obj.uploadAction[4].disable();

obj.uploadAction[5].disable();

obj.uploadAction[6].disable();

}

returntrue;

},

uploadAction:

[

newExt.Action({id:

'fileupload_selectfile_id'}),

newExt.Action({text:

'删除选择',iconCls:

'filedel',disabled:

true,handler:

function(){

varobj=Application.uploadDialog;

vargrid=obj.uploadGrid;

if(!

grid.selModel.hasSelection()){

msgbox('W','请先选择要删除的记录!

');

return;

}

varstore=grid.store;

varselection=grid.getSelectionModel().getSelections();

for(vari=0;i

varrec=store.getAt(store.indexOfId(selection[i].id));

if(!

obj.deletefile(rec,store,obj))returnfalse;//删除

}

}}),

newExt.Action({text:

'清空全部',iconCls:

'filecancel',disabled:

true,handler:

function(){

varobj=Application.uploadDialog;

varstore=obj.uploadGrid.store;

varlen=store.getCount();

for(vari=0;i

varrec=store.getAt(0);

if(!

obj.deletefile(rec,store,obj))returnfalse;//删除

}

}}),

newExt.Action({text:

'上传选择',iconCls:

'fileupselect',disabled:

true,handler:

function(){

varobj=Application.uploadDialog;

obj.SingleUpload=true;//单个上传模式

vargrid=obj.uploadGrid;

if(!

grid.selModel.hasSelection()){

msgbox('W','请先选择要上传的记录!

');

return;

}

varselection=grid.getSelectionModel().getSelections();

varrec=selection[0];

obj.swfu.startUpload(rec.data.id);

}}),

newExt.Action({text:

'上传全部',iconCls:

'fileupall',disabled:

true,handler:

function(){

varobj=Application.uploadDialog;

obj.SingleUpload=false;//多个上传模式

obj.StopUpload=false;//取消停止标志

obj.swfu.startUpload();

}}),

newExt.Action({text:

'停止进程',iconCls:

'fileupstop',disabled:

true,handler:

function(){

varobj=Application.uploadDialog;

obj.StopUpload=true;//设置停止标志

obj.swfu.stopUpload();

}}),

newExt.Action({text:

'确定',iconCls:

'ok',handler:

function(){

Application.uploadDialog.ok();

}}),

newExt.Action({text:

'退出',iconCls:

'exit',handler:

function(){

Application.uploadDialog.hide();

}})

],

initDialog:

function(){

this.dialog=newExt.Window({id:

this.upload_win_id,iconCls:

'uploadfile',animCollapse:

false,

layout:

'fit',width:

640,height:

370,title:

'附件上传...',closeAction:

'hide',border:

false,

modal:

true,plain:

true,closable:

false,resizable:

true,collapsible:

true,maximizable:

true,

bbar:

[this.uploadProgressBar=newExt.ProgressBar({width:

624})],

items:

[

this.uploadGrid=newExt.grid.EditorGridPanel({

autoExpandColumn0:

1,enableHdMenu:

false,clicksToEdit:

1,autoEncode:

true,selModel:

newExt.grid.RowSelectionModel({singleSelect:

true}),

tbar:

[this.uploadAction[0],'-',this.uploadAction[1],this.uploadAction[2],

'-',this.uploadAction[3],this.uploadAction[4],'-',this.uploadAction[5],'->','-',this.uploadAction[6],'-',this.uploadAction[7]],

bbar:

[this.stateInfo=newExt.Toolbar.TextItem(String.format(this.statuBarText,0,Ext.util.Format.fileSize(0)))],

store:

newExt.data.SimpleStore({fields:

['autoid','id','state','file','size','filetype','errinfo','reuploadcount','linkname','linkurl','servername','uploaded'],data:

[]}),

columns:

[

newExt.grid.RowNumberer1(),

{header:

'文件名称',width:

200,dataIndex:

'file',sortable:

true},

{header:

'大小',width:

60,renderer:

Ext.util.Format.fileSize,dataIndex:

'size',sortable:

true,align:

'right'},

{header:

'状态',width:

70,dataIndex:

'state',align:

'center',sortable:

true,renderer:

function(_value){if(_valu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1