`
宫庆义
  • 浏览: 17314 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

HTMLEditor 上传图片 组件

阅读更多


用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;
        }


实现效果如下




本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhaozhen1984/archive/2010/09/28/5911839.aspx
分享到:
评论

相关推荐

    Ext Htmleditor 支持上传图片

    通过以上内容,我们了解到Ext HTMLEditor如何支持上传图片,并涉及到了Ext JS的基本使用、HTMLEditor的配置、图片上传的实现原理以及相关的安全优化措施。实现这一功能需要前端与后端的配合,但带来的用户体验提升是...

    extjs htmleditor 图片上传和添加网络图片编辑器

    这个主题主要关注如何在ExtJS的HTMLEditor中实现图片的上传和添加网络图片功能。 首先,理解ExtJS HTMLEditor的基本结构和工作原理是至关重要的。HTMLEditor是一个组件,它可以将HTML代码作为输入,并提供类似于...

    完整的Extjs4 htmleditor上传图片插件(包括实例和用法)

    在ExtJS4中,htmleditor是一个非常实用的组件,它允许用户在编辑器中进行HTML编辑,包括插入文本、格式化、链接创建等,而上传图片功能是增强编辑器功能的重要一环。本资源提供了一个完整的ExtJS4 htmleditor图片...

    htmleditor扩展插入图片功能,使用Extjs+servlet请求实现

    2. **上传图片处理**:当用户选择图片并点击“插入”按钮时,我们需要监听这个事件。在HTML Editor中,可以通过`getEditorField().insertImage()`方法插入图片,但图片必须有一个URL。因此,我们需要实现一个图片...

    c#的HtmlEditor

    4. **扩展功能**:为了增加更多功能,比如上传图片或文件,开发者通常会集成服务器端的API。当用户在编辑器中选择“插入图片”时,会触发文件上传,然后返回图片的URL,插入到HTML中。 5. **样式和主题**:...

    扩展ExtJs的HtmlEditor编辑器插入图片.pdf

    FileUploadField控件提供了基本的文件上传功能,可以上传图片、文档、音频、视频等多种类型的文件。 ### 2. 实现图片预览功能 在图片上传成功后,我们需要实现图片预览功能,用于显示上传的图片。我们可以使用Img...

    新浪htmleditor jsp版 可上传 可结合struts2

    在实际项目中,这可能包括图片上传的JavaScript函数、后台处理图片上传的Servlet或Struts2 Action、以及相关的配置文件(如Struts2的配置XML文件)。这些文件通常会处理图片的上传、存储、缩略图生成、以及在编辑器...

    ExtJS的编辑器HtmlEditor的一个图片插件

    HtmlEditor(编辑器)的一个图片插件,制作过程用到了图片上传等,采用Struts1.2 ,上传组件使用的是Cos,这个插件的意义并不在于插件本身,只是希望给要用ExtJS做文件上传或想做ExtJS插件的朋友提供一种思路 ...

    Lion.Data.Library.HtmlEditor v2.0 Demo

    3. **图片和文件管理**:内置的文件上传功能允许用户直接在编辑器中上传图片和文件,并能进行简单的管理和预览。 4. **HTML代码编辑模式**:除了可视化编辑外,还提供了源代码编辑模式,便于开发者对HTML代码进行...

    Extjs的HtmlEidtor富文本编辑器的使用和图片上传显示的实现

    在ExtJS中,HtmlEditor是一个非常有用的组件,它提供了一个完整的HTML编辑器,允许用户在Web页面上进行文本编辑、格式化和插入多媒体内容,如图片。这篇博客文章"Extjs的HtmlEidtor富文本编辑器的使用和图片上传显示...

    新浪博客HtmlEditor在线编辑器

    2. **插入图片和链接**:编辑器提供了便捷的图片上传功能,用户可以直接从本地选择图片上传,并可设定图片尺寸和对齐方式。同时,编辑器也支持插入超链接,方便链接到其他网页或资源。 3. **列表和区块**:用户可以...

    Lion.Data.Library.HtmlEditor v2.0(源码和实例)

    2. 插件系统:Lion.Data.Library.HtmlEditor支持插件机制,允许添加或删除编辑器的功能模块,如图片上传、视频插入等,这极大地增强了编辑器的灵活性。 3. 数据处理:源码中包含了对HTML内容的处理逻辑,如数据的...

    TextArea_HTMLEditor 编辑器 learning extjs 中文

    1. 图片上传:在使用TextArea_HTMLEditor时,可能需要集成图片上传功能,通常通过自定义按钮实现,处理上传逻辑并在成功后更新编辑器内容。 2. 安全性:由于编辑器允许输入HTML代码,可能存在XSS攻击风险,因此在...

    Winform程序Html编辑器控件HtmlEditor

    2. **增强功能**:如添加图片上传、文件附件、预览模式等功能。 3. **性能优化**:针对大量HTML内容加载和编辑时可能出现的性能问题进行优化。 4. **错误处理**:完善异常处理机制,确保程序在遇到错误时能够优雅地...

    简易的在线编辑器(有图片上传功能)

    "简易的在线编辑器(有图片上传功能)"就是一种具备基础编辑功能并且支持用户上传图片的工具。 首先,我们要理解在线编辑器的核心功能。一个基本的在线编辑器通常包括以下组件: 1. 文本输入区:用户可以在这里...

    EXT扩展Htmleditor,在工具栏中添加插入图片按钮,可选择图片插入到编辑器中(也可添加其他功能按钮)

    以上只是一个简单的示例,实际开发中可能需要处理更多细节,如图片大小限制、上传到服务器、预览图片等。EXT Htmleditor的强大之处在于它的高度可定制性,你可以根据需要添加任意数量的按钮,甚至创建复杂的自定义...

    Ext的CKEditor组件

    6. **图片上传**:CKEditor内置了图片上传功能,用户可以直接在编辑器中上传图片,这通常需要后端配合提供一个接收图片的接口。你可以通过配置CKEditor的图片上传选项来定制上传过程,比如设置上传URL、限制文件大小...

    HtmlEditor网页编辑器程序源码-VS2008

    - **基本功能**:HtmlEditor通常包含文本格式化、字体选择、颜色设置、图片上传、链接管理等功能,允许用户在浏览器端创建和编辑HTML内容。 - **富文本编辑**:通过模拟常见的桌面文字处理软件界面,提供WYSIWYG...

Global site tag (gtag.js) - Google Analytics