基于Ueditor的附件上传控件(支持IE8)

Uedior是一个很好的富文本编辑,其支持IE8的特性解决了很多开发的问题,然而,有的时候,我们可能只需要其中一部分的功能,这就需要我们做一定的改动。这次,我需要单独提取出其“上传附件”功能,先来看效果图:
一开始初始化的时候只有这样一个“上传附件”的按钮


点击按钮之后出现上传附件的框,这时候的操作和原来用正常的ueditor时候一样:


上传之后效果如下(点击删除,即可删除该文件):

代码如下:
  1. 页面初始化:
    	 <div class="uploadFileDiv"> 
    		<script id="upload_editor1" name="upload_editor" type="text/plain" style="width:30px;height:0;margin:5px 10px;float:left;"></script>
    		<input type="hidden" name="file_url_arr" class="file_url_arr" id="fileContent1" value=""/>
    		<div id="file_preview_arr" class="file_preview_arr" style="float:left;"></div>
    	</div>
    js代码:
    	<script type="text/javascript">
    	var upload_editor1 = null;
    	$(function(){
    		//编辑页面初始化ueditor多图上传按钮
    		upload_editor1 = UE.getEditor('upload_editor1', {
    			toolbars: [['attachment']]
    			,wordCount:false
    			,autoHeightEnabled:false
    		});
    		/* 此处为更换上传附件调用的后台方法,用自己的controller去替换
    		UE.Editor.prototype._bkGetActionUrl=UE.Editor.prototype.getActionUrl;
    		UE.Editor.prototype.getActionUrl=function(action){
    			if (action == 'uploadimage'){
    				return '上传文件用到的controller';
    			}else{
    				return this._bkGetActionUrl.call(this, action);
    			}
    		};
    		 */
    	});
    	</script>

  2. ueditor.config.js:
            //是否启用元素路径,默认是显示
        	//将该属性该为fasle
            ,elementPathEnabled : false

  3. ueditor.all.js:
    //规定插入附件执行之后的操作,替换原本的UE.plugin.register('insertfile', function (){
    //plugins/insertfile.js
    /**
     * 插入附件
     */
    UE.plugin.register('insertfile', function (){
    
        var me = this;
    
        return {
            commands:{
                'insertfile': {
                    execCommand: function (command, filelist){
                        filelist = utils.isArray(filelist) ? filelist : [filelist];
    
                        var i, item, title,
                        html = '',
                        newUrl = '';
    	                for (i = 0; i < filelist.length; i++) {
    	                    item = filelist[i];
    	                    title = item.title || item.url.substr(item.url.lastIndexOf('/') + 1);
    	                    html += '<div style="height:16px;float:left;margin:10px;">' +
    	                        '<a target="_blank" style="font-size:12px; color:#0066cc;" href="' + item.url +'" title="' + title + '">' + title + '</a>' +
    	                        '<input type="button" value="删除" οnclick="deleteFile(this,\'' + item.url + ',\')" /></div>' +
    	                        '</div>';
    	                    newUrl += item.url + ',';
    	                }
    	                var ueditor = $("#" + me.key);
    	                var parent = ueditor.closest('.uploadFileDiv');
    	                var file_preview_arr = parent.find('div.file_preview_arr');
    	                var file_url_arr = parent.find('input.file_url_arr');
    	                var content1 = file_preview_arr.html();
    	                var content2 = file_url_arr.val();
    	                file_preview_arr.html(content1+html);
    	                file_url_arr.val(content2+newUrl);
                    }
                }
            }
        }
    });
    (js方法里面尽量按class名进行操作,这样是为了可以在一个页面运用多个这样的上传插件,且互相之间不干扰)
  4. 项目下载:项目(该项目,我是用MyEclipse做的)
  5. 如果大家有什么疑惑,可以在下方留言,或者加博主qq:924325679(备注写清原因,一般我都回添加的),博主将尽力解答。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
新颖网络上插件(StorageWebPlug)是一个支持超大文件(2GB,可扩展)上的COM件, 具备断点续,文件MD5验证,大大提高上效率、节省带宽,有详细的上进度显示,支持多种脚本语言,欢迎下载体验。免费提供JavaScript SDK包。 产品特点: 1、文件上使用增强的FTP协议,用户使用浏览器就可以上超大文件到服务器(支持超过1G的文件)。 2、支持断点续,系统智能续未上的文件,续操作更简单,更方便,更快捷。 3、支持文件批量上, 一次可以上多个文件. 上时有详细的状态显示(包括单个文件进度,整体进度,输速率,剩余时间等)。 4、新颖网络免费提供JavaScript SDK包。通过新颖网络提供的封装好的JavaScript类库用户可以快速的与现有系统整合。 5、StorageWebPlug提供完善的接口和帮助文档,开发文档。开发人员可以动态设置上保存路径, 设置允许扩展名, 允许最大大小等,可自定义强。 6、支持各种代理(HTTP, Socket4, Socket5等)。 7、组件采用多线程机制来保证上效率。 8、支持批量文件上, 用户可以一次性上批量文件. 客户端可以绑定HTML表单变量, 服务端并可以接收表单变量 9、服务端文件保存路径可以随意指定,服务端文件保存路径可以灵活变化。保存路径支持网络路径。 10、为提高安全性,服务端组件可以指定用户权限 11、可以限制上单个文件大小, 制上带宽上限, 允许文件扩展名, 拒绝文件扩展名等 12、上数据时会根据网络状况来制数据包大小, 避免网络堵塞 13、件采用ATL编写, cab包只有59KB, 用56k的modem下载不会超过12秒 14、服务端支持Windows 2000 Server/Windows 2003 Server/Windows NT/Windows XP/Unix/Linux等操作系统 15、通过新颖网络业界领先的设计水平打造的操作界面可以帮助您的系统和产品获得更高的品质。 产品介绍:http://www.ncmem.com/service_storagewebplug.aspx 下载地址:http://www.ncmem.com/download.aspx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值