在 asp.net 上为 CKEditor 启用图像上传

Som*_*y J 3 asp.net upload image ckeditor

我将 CKEditor 用于我的 asp.net C# 项目。如何为编辑器启用图像上传选项卡。我读了一些文章,但没有一篇有用。其中一些用于 php。我想要asp.net。感谢您的帮助。

Som*_*y J 6

我喜欢http://www.codedigest.com/Articles/ASPNET/423_Upload_Images_and_Integrate_with_CKeditor_in_AspNet.aspx教程,用于将 filebrowserImageUploadUrl 属性与我们自己的文件上传器实现一起使用。但是上传的按钮没有出现,什么也没发生。我的代码在这里:

<head runat="server">

    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script src="ckeditor/ckeditor.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            CKEDITOR.replace('<%=CKEditor1.ClientID %>', { filebrowserImageUploadUrl: '/Upload.ashx' });
        });
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <CKEditor:CKEditorControl ID="CKEditor1" BasePath="~/ckeditor/" runat="server" Width="600px" Height="200px"></CKEditor:CKEditorControl>
    </div>
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

和 ashx 文件:

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

using System;
using System.Web;

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);
        uploads.SaveAs(context.Server.MapPath(".") + "\\Images\\" + file);
        string url = "/Images/" + file;
        context.Response.Write("<script>window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum + ", \"" + url + "\");</script>");
        context.Response.End();            
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}
Run Code Online (Sandbox Code Playgroud)