.net中使用ckeditor4+ckfinder上传图片

这篇具有很好参考价值的文章主要介绍了.net中使用ckeditor4+ckfinder上传图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        因设计一个线上考试系统,需要考生上传相关设计的图片,因此在网上查找了使用ckeditor+ckfinder技术上传图片的文章,网上相关文章很多,但大多都不能完全成功,通过不断的参考和大量的调试,总算成功地实现了图片的上传功能。

一、官方Download

1、CKEditor :选择”Full Package”,单击“Download“按钮,下载文件:ckeditor_4.17.1_full.zip

2、CKFinder :点击Asp.net标签下的“Download zip packape”按钮,下载文件:ckfinder_aspnet_2.6.3.zip

二、具体部署

1、分别解压下载下来的这2个文件,并把解压后的子目录ckeditor和ckfinder文件夹拷贝到你的项目中;

.net中使用ckeditor4+ckfinder上传图片

                                                                        图1

2、CKEditor配置的修改

(1)设置CKEditor的工具栏

在win中双击ckeditor\samples\index.html:

.net中使用ckeditor4+ckfinder上传图片


                                                    图2

单击右上部的“TOOLBAR CONFIGURATOR”按钮,出现工具栏按钮选择界面:

.net中使用ckeditor4+ckfinder上传图片


                                                图3

配置完成,单击“Get toolbar config”按钮,并将其中的配置代码拷贝到ckeditor\config.js文件中。

.net中使用ckeditor4+ckfinder上传图片


                                                图4

将下面的代码添加到ckeditor\config.js的配置文件中

CKEDITOR.editorConfig = function( config ) {
    // Define changes to default configuration here. For example:
    // config.language = 'fr';
  // config.uiColor = '#AADC6E';

    config.toolbarGroups = [
        { name: 'document', groups: ['mode', 'document', 'doctools'] },
        { name: 'clipboard', groups: ['clipboard', 'undo'] },
        { name: 'editing', groups: ['find', 'selection', 'spellchecker', 'editing'] },
        { name: 'forms', groups: ['forms'] },
        { name: 'basicstyles', groups: ['basicstyles', 'cleanup'] },
        { name: 'paragraph', groups: ['list', 'indent', 'blocks', 'align', 'bidi', 'paragraph'] },
        { name: 'links', groups: ['links'] },
        { name: 'insert', groups: ['insert'] },
        { name: 'styles', groups: ['styles'] },
        { name: 'colors', groups: ['colors'] },
        { name: 'tools', groups: ['tools'] },
        { name: 'others', groups: ['others'] },
        { name: 'about', groups: ['about'] }
    ];

    config.removeButtons = 'Source,NewPage,Print,Templates,Scayt,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField,Blockquote,CreateDiv,PageBreak,Iframe,Maximize,ShowBlocks,About,BidiLtr,BidiRtl,Language';
    //上传图片窗口用到的接口
    config.filebrowserImageUploadUrl = "Upload.ashx";
    // 使上传图片弹窗出现对应的“上传”tab标签
    config.removeDialogTabs = 'image:advanced;link:advanced';
    //工具栏是否可以被收缩
    //config.toolbarCanCollapse = true;
    config.filebrowserBrowseUrl = 'ckfinder/ckfinder.html';
    config.filebrowserImageBrowseUrl = 'ckfinder/ckfinder.html?Type=Images';
    //config.filebrowserImageUploadUrl = ckfinderPath + 'ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Images';
    config.filebrowserUploadUrl = 'ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Files';
    config.filebrowserFlashBrowseUrl = 'ckfinder/ckfinder.html?Type=Flash';
    config.filebrowserFlashUploadUrl = 'ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Flash';
};

    其中的:
    config.filebrowserImageUploadUrl = "Upload.ashx";
    就是上传图片用到的接口(待会要上传的action)

(2)修改ckeditor\plugins\image\dialogs\image.js文件。搜索“browseServer”,将其中的label:d.lang.common.browseServer,hidden:!0 修改为hidden:0。搜索“image_previewText”,将||后“”中的一大段字符串删除。

3、ckfinder配置的修改

      修改ckfinder\config.ascx用户控件文件,更改其BaseUrl路径:
      BaseUrl = "~/uploader/";     //前提条件是根目录上必需存在用来存放上传文件的uploader文件夹。
      并且将CheckAuthentication()函数中的返回值从false修改为true,去掉去掉身份验证

public override bool CheckAuthentication()
{
    return true;
}

至此,配置工作终于完成。

 文章来源地址https://www.toymoban.com/news/detail-483329.html

三、在页面中应用

1、添加dll引用

    在“解决方案资源管理器”中右击项目,在弹出的快捷菜单中单击“添加引用”,在“浏览”选项卡中选择ckfinder\bin\Release\CKFinder.dll文件,将CKFinder.dll添加到当前工程中。
     
2、匹配上传图片数据格式

     ckeditor4期望从后端返回的是一个Json格式数据,包含下面几个字段,数据格式外层不需要状态码200或者其他data套着,直接返回。

.net中使用ckeditor4+ckfinder上传图片

                                                    图5
     当用户点击“上传到服务器”按钮会让路径自动处理并返回一个JSON格式的数据:

成功上传文件后,期望包含以下条目的JSON响应:
{
    "uploaded": 1,
    "fileName": "foo.jpg",
    "url": "/files/foo.jpg"
}

(1)  因此,需要创建一个处理JSON格式数据的类Json.cs,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
///Json 的摘要说明
/// </summary>
public class Json
{
  public Json()
  {
    //
    //TODO: 在此处添加构造函数逻辑
    //
  }

  public string uploaded { set; get; }
  public string fileName { get; set; }
  public string url { get; set; }
}

(2) 添加“Newtonsoft.Json.dll”引用。将Newtonsoft.Json.dll添加到当前工程中。

3、设计图片上传接口Upload.ashx(上传的action)

<%@ WebHandler Language="C#" Class="Upload" %>
using System;
using System.Web;
using Newtonsoft.Json;
using System.IO;

public class Upload : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        HttpPostedFile uploads = context.Request.Files["upload"];
        string CKEditorFuncNum = context.Request["CKEditorFuncNum"];
        string file = System.IO.Path.GetFileName(uploads.FileName);
        // 图片上传到uploader\images\目录
        uploads.SaveAs(context.Server.MapPath("~\\uploader\\images\\") + file);
        string url = "uploader/images/" + file;

        Json Json1 = new Json();
        Json1.uploaded = "1";
        Json1.fileName = "ImageName";
        Json1.url = "uploader/images/" + file;
        string jsonstr = JsonConvert.SerializeObject(Json1);
        context.Response.Clear();
        context.Response.Write(jsonstr);
        context.Response.End();
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

4、页面设计

(1)   在页面上添加一个textarea组件:

      <textarea name="editor1" id="editor1" rows="10" cols="80">
         This is my textarea to be replaced with CKEditor.
      </textarea>

(2)   在页面的head中添加:

    <script src="ckeditor/ckeditor.js" type="text/javascript"></script>
    <script src="ckfinder/ckfinder.js" type="text/javascript"></script>
    <script type="text/javascript">

      // 使用CKEditor替换 <textarea id="editor1">
      // 实例化,使用默认配置
      window.onload = function () {
        // 创建编辑器
        var editor = CKEDITOR.replace('editor1');
        // 为编辑器绑定"上传控件"
        //CKFinder.setupCKEditor(editor, '/ckfinder/');
      };
    </script>

至此,大功告成。运行程序,就可实现文字的编辑和图片的上传。

.net中使用ckeditor4+ckfinder上传图片

单击工具栏上“图像”图标,出现如图5所示的“图像属性”对话框。切换到“上传”选项卡,单击“选择文件”按钮,在弹出的“打开”窗口中选择一个图片文件:

.net中使用ckeditor4+ckfinder上传图片

       选择图片后,单击“打开”,显示:

.net中使用ckeditor4+ckfinder上传图片

     单击“上传服务器”按钮,系统调用图片上传接口Upload.ashx,将图片上传到指定位置,并将该图片显示在“图像信息”窗口:

.net中使用ckeditor4+ckfinder上传图片

       调节宽度、高度等图像信息后,单击“确定”按钮,系统就将该图片插入CKEditor编辑窗口中:

.net中使用ckeditor4+ckfinder上传图片

 

到了这里,关于.net中使用ckeditor4+ckfinder上传图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Web开发的富文本编辑器CKEditor介绍,Django有库ckeditor_uploader对它进行支持,django-ckeditor安装方法及使用注意事项

    Web开发的富文本编辑器CKEditor介绍,Django有库ckeditor_uploader对它进行支持,django-ckeditor安装方法及使用注意事项

    当需要在网页应用程序中提供富文本编辑功能时,CKEditor是一个流行的选择。CKEditor是一个开源的JavaScript富文本编辑器,它提供了强大的功能和用户友好的界面,使用户可以轻松创建和编辑格式化的文本内容。 以下是CKEditor的一些主要特性: 所见即所得编辑 :CKEditor提供了所

    2024年02月16日
    浏览(13)
  • Vue中实现图片上传,上传后的图片回显,存储图片到服务器 【使用对象存储OSS】

    Vue中实现图片上传,上传后的图片回显,存储图片到服务器 【使用对象存储OSS】

    前言 以下只提供一种思路,对新手可能不太友好。 这里将前端Vue上传的图片直接存储到服务器上, Alibaba Cloud OSS : 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储

    2024年02月06日
    浏览(54)
  • vue2使用 tinymce富文本编辑器-图片上传、粘贴图片上传致服务器

    1.安装tinymce富文本编辑器插件 npm i tinymce npm i @tinymce/tinymce-vue 2.创建Editor.js文件 封装组件 以便使用 3.汉化包 (我放在public/tynymce/langs文件夹里) 4.vue组件中使用 本次记录重点在于 上传图片方法 需要区分工具栏中图片上传方法 以及 粘贴进去的图片也需要走上传方法。两个方

    2024年02月09日
    浏览(52)
  • Vue3中快速简单使用CKEditor 5富文本编辑器

    Vue3中快速简单使用CKEditor 5富文本编辑器

    CKEditor 5就是内嵌在网页中的一个富文本编辑器工具 CKEditor 5开发文档(英文):https://ckeditor.com/docs/ckeditor5/latest/index.html 接下来带你快速熟悉CKEditor 5在Vue3中简单使用,看最终效果图👇 本文项目采用CKEditor 5定制经典配置(ckeditor5-build-classic) + @ckeditor/ckeditor5-vue 官网定制,选

    2024年02月09日
    浏览(12)
  • 前端vue单个文件上传支持图片,压缩包以及文件 , 下载完整代码请访问uni-app插件市场址:https://ext.dcloud.net.cn/plugin?id=13066

    前端vue单个文件上传支持图片,压缩包以及文件 , 下载完整代码请访问uni-app插件市场址:https://ext.dcloud.net.cn/plugin?id=13066

    前端vue单个文件上传支持图片,压缩包以及文件 , 阅读全文下载完整代码请关注微信公众号: 前端组件开发 效果图如下: 使用方法 HTML代码部分 JS代码 (引入组件 填充数据) CSS

    2024年02月09日
    浏览(14)
  • 使用minio实现图片和视频的上传

    ps:因为业务上遇到了用minio实现图片的上传所以记录一下使用 MinIO是一个开源的 对象存储服务器 ,可以用来存储和检索任何类型的文件,包括图片、视频、文档等。MinIO的设计目标是为了 提供高性能、高可用性和可扩展性的对象存储服务 ,同时保持简单易用和低成本。 为

    2024年02月12日
    浏览(12)
  • 小程序中使用上传图片,显示、删除、预览

    小程序中使用上传图片,显示、删除、预览

    需要哦用户点击加号上传图片,并展示所上传图片和能够删除和预览 采用的uniapp,创建了一个view容器包裹加号图标和展示的图片。 内部展示图片超过9张时候,加号图片隐藏 点击加号 uni.showActionSheet(OBJECT) 点击后又使用看图片选择API 从底部向上弹出操作菜单 OBJECT参数说明

    2024年01月18日
    浏览(8)
  • 使用Vue + axios实现图片上传,轻松又简单

    使用Vue + axios实现图片上传,轻松又简单

    目录 一、Vue框架介绍 二、Axios 介绍 三、实现图片上传 四、Java接收前端图片 Vue是一款流行的用于构建用户界面的开源JavaScript框架。它被设计用于简化Web应用程序的开发,特别是单页面应用程序。 Vue具有轻量级、灵活和易学的特点,使得开发者能够快速构建交互式的前端界

    2024年02月09日
    浏览(11)
  • pyqt5使用Designer实现按钮上传图片

    pyqt5使用Designer实现按钮上传图片

    1、ui界面 2、ui转py代码 其中 uploadimg.py 代码如下: 3、upload_main.py主函数代码 upload_main.py 代码如下: 4、效果图

    2024年02月04日
    浏览(15)
  • 使用SpringBoot将图片上传至阿里云OSS

    使用SpringBoot将图片上传至阿里云OSS

    1. 什么是OSS? 官方的解释是这样的:阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。 官网:对象存储OSS 2. 为什么要使用OSS? 作者认为主要是方便项目上线后的文件业务的处

    2024年02月06日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包