如何使用 asp.net 4.0 使用 ckeditor 启用图像上传

how to enable image upload with ckeditor with asp.net 4.0

我有一些接受富文本的页面。我只是为此使用 ckeditor 控件。它装得很好。但无法显示用于图像上传的图像浏览器选项卡。这是我的 html 标记:

<script type="text/javascript">
        $(function () {
            CKEDITOR.replace('<%=CKEditor1.ClientID %>', { filebrowserImageUploadUrl: 'Upload.ashx' });
        });
    </script>
<tr>
                                                <td style="width: 20%">Template Body
                                                </td>
                                                <td>
                                                    <CKEditor:CKEditorControl ID="CKEditor1" runat="server" ValidationGroup="AddNewTemplate" PasteFromWordRemoveFontStyles="False"></CKEditor:CKEditorControl>
                                                    <asp:CustomValidator ID="CustomValidator2" runat="server"
                                                        ErrorMessage="Template body is required."
                                                        OnServerValidate="CustomValidator2_ServerValidate"
                                                        ValidationGroup="AddNewTemplate" ForeColor="Red"></asp:CustomValidator>
                                                </td>
                                            </tr>

这是我上传图片的ashx文件。

<%@ WebHandler Language="C#" Class="Upload" %>

using System;
using System.Web;
using System.Configuration;
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 = DateTime.Now.ToString("ddMMyyyy_HHmmss") + Path.GetExtension(uploads.FileName);
       uploads.SaveAs(context.Server.MapPath(".") + "\EmailImages\" + file);
       //provide direct URL here
       string url = "/EmailImages/" + file;  
      context.Response.Write("<script>window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum + ", \"" + url + "\");</script>");
      context.Response.End();                     
    }

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

这是我没有上传选项卡的 ckeditor 屏幕:

是的,我们可以用 CKEditor 控件做一件事。只需查看页面上的 CKeditor 控件的属性。并将 Upload.ashx 文件名分配给此属性。