问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

htmleditor 如何上传图片

发布网友 发布时间:2022-04-30 01:18

我来回答

1个回答

热心网友 时间:2022-06-27 21:30

最近用Extjs做项目,用到htmleditor控件,唯一的缺陷是不可以上传图片,为了以后方便,在基于htmleditor控件上写了一个支持上传图片的。

控件StarHtmleditor

/**
* 重载EXTJS-HTML编辑器
*
* @class HTMLEditor
* @extends Ext.form.HtmlEditor
* @author wuliangbo
*/
HTMLEditor = Ext.extend(Ext.form.HtmlEditor, {
   addImage : function() {
       var editor = this;
       var imgform = new Ext.FormPanel({
           region : 'center',
           labelWidth : 55,
           frame : true,
           bodyStyle : 'padding:5px 5px 0',
           autoScroll : true,
           border : false,
           fileUpload : true,
           items : [{
                       xtype : 'textfield',
                       fieldLabel : '选择文件',
                       name : 'userfile',
                       inputType : 'file',
                       allowBlank : false,
                       blankText : '文件不能为空',
                       height : 25,
                       anchor : '90%'
                   }],
           buttons : [{
               text : '上传',
               type : 'submit',
               handler : function() {
                   if (!imgform.form.isValid()) {return;}
                   imgform.form.submit({
                       waitMsg : '正在上传',
                       url : 'Default.aspx',
                       success : function(form, action) {
                           var element = document.createElement("img");
                           element.src = action.result.fileURL;
                           if (Ext.isIE) {
                               editor.insertAtCursor(element.outerHTML);
                           } else {
                               var selection = editor.win.getSelection();
                               if (!selection.isCollapsed) {
                                   selection.deleteFromDocument();
                               }
                               selection.getRangeAt(0).insertNode(element);
                           }
                           win.hide();
                       },
                       failure : function(form, action) {
                           form.reset();
                           if (action.failureType == Ext.form.Action.SERVER_INVALID)
                               Ext.MessageBox.alert('警告',
                                       action.result.errors.msg);
                       }
                   });
               }
           }, {
               text : '关闭',
               type : 'submit',
               handler : function() {
                   win.close(this);
               }
           }]
       })

       var win = new Ext.Window({
                   title : "上传图片",
                   width : 300,
                   height : 200,
                   modal : true,
                   border : false,
                   iconCls : "picture.png",
                   layout : "fit",
                   items : imgform

               });
       win.show();
   },
   createToolbar : function(editor) {
       HTMLEditor.superclass.createToolbar.call(this, editor);
       this.tb.insertButton(16, {
                   cls : "x-btn-icon",
                   icon : "picture.png",
                   handler : this.addImage,
                   scope : this
               });
   }
});
Ext.reg('StarHtmleditor', HTMLEditor);

页面js代码

Ext.onReady(function() {
   Ext.QuickTips.init();
   Ext.form.Field.prototype.msgTarget = 'side';
   var ff = new Ext.FormPanel({
               title : "文件上传",
               renderTo : document.body,
               width : 600,
               height : 480,
               labelWidth : 55,
               frame : true,
               items : [{
                           xtype : "textfield",
                           name : "title",
                           fieldLabel : "标题",
                           anchor : "98%"
                       }, {
                           xtype : "combo",
                           name : "topic_id",
                           fieldLabel : "所属栏目",
                           anchor : "98%"
                       }, {
                           xtype : "textfield",
                           name : "keywords",
                           fieldLabel : "关键字",
                           anchor : "98%"
                       }, {
                           xtype : "StarHtmleditor",
                           name : "content",
                           fieldLabel : "内容",
                           anchor : "98%"
                       }]
   });

});

后台代码简单实现了一下

protected void Page_Load(object sender, EventArgs e)
       {
           string fileName = string.Empty;
           string fileURL = string.Empty;
           string rt = string.Empty;
           try
           {
               HttpPostedFile file = Request.Files[0];
               fileName = GetFileName(file.FileName);
               file.SaveAs(Server.MapPath("upload//") + fileName);
               fileURL = "upload/" + fileName;
               rt = "{success:'true',fileURL:'" + fileURL + "'}";
           }
           catch
           {
               rt = "{success:'false',fileURL:'" + fileURL + "'}";
           }
           
           Response.Write(rt);

       }
       
       private string GetFileName(string FullName)
       {
           string fileName = string.Empty;
           int last = FullName.LastIndexOf(@"/");
           fileName = FullName.Substring(last + 1, FullName.Length - last - 1);
           return fileName;
       }


实现效果如下

http://blog.csdn.net/zhaozhen1984/article/details/5911839

原文链接请查看谢谢。


http://www.cnblogs.com/wuliangbo/archive/2009/03/08/1406460.html

详查链接。谢谢。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 stardock start8可以卸载吗 电脑图片查看器? Microsoftstart可以卸载吗 电脑图片查看器有哪几种 小米电脑图片查看器是哪个 现在葫芦岛至绥中的高速公路封闭了吗? 上海浦东新区惠南镇拱极路3623乘地铁几号线号? 攻或受是国家保密人员的耽美 葫芦岛坐高铁到苏州多长时间 谁推荐些腹黑攻,攻宠受BL甜文 葫芦岛银行可以办葫芦岛地铁卡吗? 攻城战士英勇无比的背后,隐藏着古代人的哪些秘密? 葫芦岛到安徽池州的火车几点钟有 《秘密》贾正是甜文还是虐文? 黄石至胡芦岛路线图要动车线哈黄石北站到葫芦岛去的乘车建议书 苹果的秘密功能具体有哪些呢? 东胜到葫芦岛… 我从葫芦岛去兰州有直达的火车吗? 攻超强的温馨甜蜜的现代耽美文 从葫芦岛到天津西青区华苑地铁c口多远距离 有没有告诉教教我魔兽争霸地图怎么做呀 郑智化蹲过监狱吗 魔兽争霸1.20下载 以下出现的CKEDITOR未定义错误该如何解决?请高手帮忙,谢谢! 魔兽争霸3地图编辑求教 魔兽争霸3用W3Mmastar之类的软件解压地图各类问w3a等文件,用WE导入修改后如何重新压缩到地图里面? stata rolling后 全是叉 可米小子什么时候解散的 怎样在明星志愿3中开启EventEditor.exe,最小化? 银河编辑器的问答 将原来的fck 换成CKEditor 4 如何使用电梯才正确 电梯怎么使用? 有谁知道? 谢谢 当下使用电梯应注意哪些事项? 我想知道WIFI会被手机屏蔽器屏蔽掉吗??尤其是四六级考试~ 考试时的信号屏蔽器可以屏蔽wifi吗? 考场新号屏蔽仪可不可以屏蔽WIFI的信号!考上有WIFI可不可以使用! 高考的屏蔽车能屏蔽WIFI信号和监测到WIFI信号源吗? - 信息提示 2017北京高考数学 围棋走法和宇宙原子数量之比接近哪个数