




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
服务器返回(PHP),其他的语言只要返回值为JSON就行成功:json_encode(array(state=true,info=上传成功,servername=服务器保存的文件名(不带扩展名),linkurl=保存路径,filemaxid=公告记录ID(可以根据需要不用),fileext=文件扩展名);失败:json_encode(array(state=false,info=错误信息);如果要做为HTMLEDITOR的一个图标使用,加以下代码,在EXT-all-debug.js文件HTMLEDITOR控件内容中,具体位置找一下啰注意要给HTMLEDITOR加个参数:uploadfileConfig: tb.add(-,itemId:uploadfile,iconCls: uploadfile,scope: editor,handler: function()var tmpuploadwin = Ext.getCmp(this.id+_uploadwin);if(!tmpuploadwin)this.uploadfileConfig.upload_win_id = this.id+_uploadwin;this.uploadfileConfig.upload_type = 1; /我用这个代表传文件,0-代表传图片new Ext.SWFUpload(this.uploadfileConfig);elsetmpuploadwin.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);var Application=;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:gressBarText,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.uploadAction1.disable();this.uploadAction2.disable();this.uploadAction3.disable();this.uploadAction4.disable();this.uploadAction5.disable();this.uploadAction6.disable();this.uploadAction7.enable();,ok:function()var rtnurl = ;var obj=Application.uploadDialog;var store=obj.uploadGrid.store;var rowcount=store.getCount();var fileexticon = 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(var i = 0;irowcount;i+)var rec = store.getAt(i);if(rec.datauploaded=1)var filetype = rec.datafiletype.toLowerCase();filetype = (fileexticonfiletype) ? fileexticonfiletype : unknow;/rtnurl = rtnurl + +rec.datalinkname+Ext.util.Format.fileSize(rec.datasize)+;rtnurl = rtnurl + +rec.datalinkname+.+rec.datafiletype+Ext.util.Format.fileSize(rec.datasize)+;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,已达到上传文件删除次数限制!);return false;var deltmpparams = obj.del_datafile_params+&filepath=+rec.data.linkurl+&filename=+rec.data.servername+&fileext=+rec.data.filetype;var delinfo = fun_sync_exec(obj.del_datafile_url,deltmpparams);delinfo = Ext.decode(delinfo);if(delinfo.state=false) /后台删除失败rec.set(state,4);rec.set(errinfo,);mitChanges();return false;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.uploadAction1.disable();obj.uploadAction2.disable();obj.uploadAction3.disable();obj.uploadAction4.disable();obj.uploadAction5.disable();obj.uploadAction6.disable();return true;,uploadAction:new Ext.Action(id:fileupload_selectfile_id),new Ext.Action(text:删除选择,iconCls:filedel,disabled:true,handler:function()var obj=Application.uploadDialog;var grid=obj.uploadGrid;if(!grid.selModel.hasSelection()msgbox(W,请先选择要删除的记录!);return;var store=grid.store;var selection=grid.getSelectionModel().getSelections();for(var i=0;iselection.length;i+)var rec=store.getAt(store.indexOfId(selectioni.id);if(!obj.deletefile(rec,store,obj) return false; /删除),new Ext.Action(text:清空全部,iconCls:filecancel,disabled:true,handler:function()var obj=Application.uploadDialog;var store=obj.uploadGrid.store;var len=store.getCount();for(var i=0;i,-,this.uploadAction6,-,this.uploadAction7,bbar:this.stateInfo=new Ext.Toolbar.TextItem(String.format(this.statuBarText,0,Ext.util.Format.fileSize(0),store: new Ext.data.SimpleStore(fields: autoid,id,state, file,size,filetype,errinfo,reuploadcount,linkname,linkurl,servername,uploaded,data:),columns:new Ext.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(_value=0)return 等待上传;else if(_value=1)return 正在上传;else if(_value=2)return 上传成功else if(_value=3)return 上传失败else if(_value=4)return 删除失败 ,header: 错误信息, width: 105,dataIndex:errinfo,sortable:true,header: 链接文字, width: 138,dataIndex:linkname,sortable:true,editor:new Ext.form.TextField(allowBlank:false,minLength:1,maxLength:200,validationDelay:50)/,header: linkurl, width: 100,dataIndex:linkurl,sortable:true,/header: servername, width: 100,dataIndex:servername,sortable:true,/header: uploaded, width: 100,dataIndex:uploaded,sortable:true),listeners: resize:function(a,b,c)Application.uploadDialog.uploadProgressBar.setWidth(b - 16);)this.dialog.show();var tmpdomsapn = this.dialog.body.createChild(tag: span,id:fileupload_selectfile_span);Ext.get(fileupload_selectfile_id).replaceWith(tmpdomsapn);this.swfucfg = 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,file_dialog_start_handler : this.fileDialogStart,file_queued_handler : this.fileQueued,file_queue_error_handler : this.queueError,file_dialog_complete_handler : this.fileDialogComplete,upload_start_handler : this.uploadFileStar,upload_progress_handler : this.uploadProgress,upload_error_handler : this.uploadError,upload_success_handler : this.uploadSuccess,upload_complete_handler : this.uploadComplete,/选择文件按钮设置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,/FLAS插件URLflash_url:this.flash_url,post_params : this.post_params, /附加传递参数custom_settings : this.custom_settings,debug: this.debugthis.swfu=new SWFUpload(this.swfucfg);,fileQueued:function(file) /选择文件后排队事件var obj=Application.uploadDialog;var data=;var filetype=(file.type.substr(1).toLowerCase(); /文件类型var showname = .substr(0,.length - file.type.length);/for(var prop in file)alert(prop+ : +fileprop); var rowcount=obj.uploadGrid.store.getCount();if(rowcount0) /已经选取文件需要验证是否又选择了同名的文件if(obj.uploadGrid.store.find(file,,0,false)!= -1)obj.swfu.cancelUpload(file.id,false);msgbox(E,+ 已经被选取!);return;data.push(file.index+1,file.id,0,,file.size,filetype,0,showname,0);obj.uploadGrid.store.loadData(data,true);obj.uploadAction1.enable();obj.uploadAction2.enable();obj.uploadAction3.enable();obj.uploadAction4.enable();obj.uploadAction5.disable();obj.stateInfo.getEl().innerHTML=String.format(obj.statuBarText,obj.uploadGrid.store.getCount(),Ext.util.Format.fileSize(obj.uploadGrid.store.sum(size);obj.uploadProgressBar.updateProgress(0,上传就绪!);,queueError:function(file,errcode,message)switch (errcode) case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:msgbox(E,单个文件大小不能超过 +Application.uploadDialog.swfucfg.file_size_limit+!出错文件:+);break;case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:msgbox(E,不能上传 0 字节文件!出错文件:+);break;case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:msgbox(E,无法识别的文件类型!出错文件:+);break;case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:msgbox(E,最多只能上传 +Application.uploadDialog.swfucfg.file_upload_limit+ 个文件!);break;default:msgbox(E,未知错误,无法选择文件!出错文件:+);break;return;,uploadFileStar:function(file)var obj=Application.uploadDialog;var index=obj.findData(file.id);obj.swfu.setButtonDisabled(true);obj.uploadAction1.disable();obj.uploadAction2.disable();obj.uploadAction3.disable();obj.uploadAction4.disable();obj.uploadAction5.enable();obj.uploadAction7.disable();if(index=0)if(obj.uploadGrid.store.getAt(index).data.reuploadcount=3)msgbox(E,文件反复上传次数不能超过 3 次!出错文件:+);obj.StopUpload = true; /设置停止标志return false;obj.post_paramsuploadtype = String(obj.upload_type); /上传类型(0-图片;1-文件)obj.post_paramsfileoknum = String(obj.UploadSuccessCount); /真正已经上传的文件数obj.post_paramsfileindex = String(Math.abs(file.index); /为了保存文件名不重复,加入文件序号参数obj.post_paramsfiletype = obj.uploadGrid.store.getAt(index).data.filetype; /传入文件扩展名obj.post_paramsfilemaxid = obj.FileMaxId; /业务表中的最大记录号obj.swfu.setPostParams(obj.post_params);obj.uploadGrid.store.getAt(index).set(state,1);obj.uploadGrid.store.getAt(index).set(reuploadcount,obj.uploadGrid.store.getAt(index).data.reuploadcount+1);obj.uploadGmitChanges();obj.uploadProgressBar.updateProgress(0,String.format(gressBarText,,0);return true;,uploadProgress:function(file,bytesloaded)var obj=Application.uploadDialog;var percent = Math.ceil(bytesloaded / file.size) * 100);obj.uploadProgressBar.updateProgress(percent/100,String.format(gressBarText,,percent);,uploadSuccess:function(file,server_data) /用服务器返回的文件大小和当前的比较,一致表示成功server_data = Ext.decode(server_data);var obj=Application.uploadDialog;var index=obj.findData(file.id);if(index=0)var rec = obj.uploadGrid.store.getAt(index);if(server_data.state=false) /从服务器返回失败rec.set(state,3);rec.set(errinfo,server_);elseobj.UploadSuccessCount +;obj.FileMaxId = server_data.filemaxid; /得到业务系统最大记录数rec.set(state,2);rec.set(errinfo,);rec.set(linkurl,server_data.linkurl);rec.set(servername,server_data.servername);rec.set(filetype,server_data.fileext);rec.set(uploaded,1);obj.uploadAction6.enable();obj.uploadGmitChanges();obj.swfu.setStats(successful_uploads:obj.UploadSuccessCount); /根据服务器返回成功数设置控件的真正成功数,uploadComplete:function(file)var obj=Application.uploadDialog;/多文件自动上传if(obj.swfu.getStats().files_queued0 & obj.SingleUpload=false & obj.StopUpload=false)obj.swfu.startUpload();elseobj.uploadProgressBar.updateProgress(1,上传完毕!);obj.swfu.setButtonDisabled(false);obj.uploadAction1.enable();obj.uploadAction2.enable();obj.uploadAction3.enable();obj.uploadAction4.enable();obj.uploadAction5.disable();obj.uploadAction7.enable();,uploadError:function(file,errcode,message)var errinfo = ;switch (errcode) case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:errinfo = HTTP网络协议失败;break;case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:errinfo = 未找到服务器地址;break;case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:errinfo = 上传过程失败;break;case SWFUpload.UPLOAD_ERROR.IO_ERROR:errinfo = 文件读取错误;break;case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:errinfo = 无文件操作权限;break;case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:errinfo = 上传超时;break;case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:errinfo = 未找到上传文件;break;case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:errinfo = 文件检验失败;break;case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:errinfo = 上传过程被取消;break;case SWFUpload.UP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025重庆市荣昌区人力资源和社会保障局招聘公益性岗位人员1人考试备考题库及答案解析
- 2026瑞昌国际控股校园招聘备考考试题库附答案解析
- 2026中铁北京局招聘备考考试题库附答案解析
- 基于知识图谱的问答-洞察及研究
- 哲学光芒专业引领
- 赞颂母爱之光
- 资本逻辑与性别差异-洞察及研究
- 人工智能导论第4版-课件 第8章-进化计算
- 手指谣大西瓜课件
- 统编版五年级语文上册新课标情境式命题真题卷(二)(含答案)
- 《归园田居(其一)》《登高》《梦游天姥吟留别》联读课件 统编版高中语文必修上册
- 【语法】形容词的最高级-完整版课件
- 企业职工基本养老保险待遇申报表
- 幼儿园大班数学:《层级分类》 课件
- 质量管理体系建立运行情况报告
- 涉河建设项目审查管理体会及探讨课件-涉河建设项目管理及建设方案审查技术标准课件
- DB44∕T 1168-2013 轮扣式钢管脚手架构件
- 世界汽车工业课件
- 单层工业厂房设计(全部)PPT课件.ppt
- 第二章_平面机构的平衡
- elements-of-communication
评论
0/150
提交评论