如何使用 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 文件名分配给此属性。
我有一些接受富文本的页面。我只是为此使用 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 文件名分配给此属性。