当前位置:   article > 正文

百度编辑器,Ueditor,C#上传文件_c# ueditor

c# ueditor


百度编辑器是一款功能非常强大的在线编辑器,但是百度只提供了ASP,PHP,JSP插入片功能,没有提供C#的上传方式所以感觉有点美中不足,今天我个人做了一个DEMO来实现用C#代码上传插入图片的功能。

首先先看一下Uediter的目录结构:


那DEMO.aspx就是我们演示的页面,Up.ashx就是上传图片的处理程序,而uploadfiles文件夹就是我们存放图片的地方

首先看DEMO.aspx里面只有一些初始化的代码:

  1. <head runat="server">
  2. <meta http-equiv="X-UA-Compatible" content="IE=8">
  3. <title>完整demo</title>
  4. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  5. <script type="text/javascript" charset="utf-8" src="../editor_config.js"></script>
  6. <script type="text/javascript" charset="utf-8" src="../editor_all.js"></script>
  7. <link rel="stylesheet" type="text/css" href="../themes/default/ueditor.css" />
  8. </head>
  9. <body>
  10. <form id="form1" runat="server">
  11. <div>
  12. <div id="myEditor" runat="server" style="width:800px;" ></div>
  13. <div class="clear">
  14. </div>
  15. <div id="btns">
  16. <input type="button" value="获得内容" οnclick="getContent()">
  17. <input type="button" value="写入内容" οnclick="setContent('请添加您的文章!');">
  18. <input type="button" value="获得纯文本" οnclick="getContentTxt()">
  19. <input type="button" value="判断是否有内容" οnclick="hasContent()">
  20. <input type="button" value="使编辑器获得焦点" οnclick="setFocus()">
  21. </div>
  22. <script type="text/javascript">
  23. //初始化编辑器
  24. var editor = new baidu.editor.ui.Editor();
  25. editor.render('myEditor');
  26. //使用editor.getContent()方法可以获得编辑器的内容
  27. function getContent() {
  28. var arr = [];
  29. arr.push(editor.getContent());
  30. // alert(arr.join());
  31. document.getElementById("HiddenField1").value = arr.join();
  32. }
  33. //使用editor.setContent('欢迎使用ueditor')方法可以设置编辑器的内容
  34. function setContent(txt) {
  35. var arr = [];
  36. editor.setContent(txt);
  37. alert(arr.join("\n"));
  38. }
  39. //使用editor.getContentTxt()方法可以获得编辑器的纯文本内容
  40. function getContentTxt() {
  41. var arr = [];
  42. arr.push(editor.getContentTxt());
  43. alert(arr.join("\n"));
  44. }
  45. //使用editor.hasContents()方法判断编辑器里是否有内容
  46. function hasContent() {
  47. var arr = [];
  48. arr.push(editor.hasContents());
  49. alert(arr.join("\n"));
  50. }
  51. function setFocus() {
  52. editor.focus();
  53. }
  54. </script>
  55. <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="getContent();" OnClick="Button1_Click" />
  56. <asp:HiddenField ID="HiddenField1" runat="server" />
  57. </div>
  58. </form>
  59. </body>

然后后台只有一个输出的:

  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. }
  4. protected void Button1_Click(object sender, EventArgs e)
  5. {
  6. Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('"+HiddenField1.Value+"');", true);
  7. }

然后看up.ashx:

  1. /// <summary>
  2. /// up 的摘要说明
  3. /// </summary>
  4. public class up : IHttpHandler
  5. {
  6. String uploadPath = "uploadfiles/"; //保存路径
  7. String fileType = ".jpg,.jpeg,.gif,.png,.bmp"; //文件允许格式
  8. Int32 fileSize = 1000; //文件大小限制,单位KB
  9. public void ProcessRequest(HttpContext context)
  10. {
  11. context.Response.ContentType = "text/plain";
  12. HttpPostedFile oFile = context.Request.Files[0];
  13. //获取文件的扩展名
  14. string FullPath = "";
  15. string state = "SUCCESS";
  16. string fileExtension = System.IO.Path.GetExtension(oFile.FileName).ToLower();
  17. if (fileType.ToLower().IndexOf(fileExtension) > -1)
  18. {
  19. if (fileSize * 1024 >= oFile.ContentLength)
  20. {
  21. string DirectoryPath;
  22. DirectoryPath = uploadPath + DateTime.Now.ToString("yyyy-MM");
  23. string sFileName = DateTime.Now.ToString("yyyyMMddHHmmssffff"); //文件名称
  24. FullPath = "~/" + DirectoryPath + "/" + sFileName + fileExtension;//最终文件路
  25. string AbsolutePath = context.Server.MapPath(FullPath);
  26. if (!Directory.Exists(context.Server.MapPath("~/" + DirectoryPath)))
  27. Directory.CreateDirectory(context.Server.MapPath("~/" + DirectoryPath));
  28. try
  29. {
  30. oFile.SaveAs(AbsolutePath);
  31. }
  32. catch (Exception e)
  33. {
  34. state = "上传失败!";
  35. }
  36. }
  37. else
  38. {
  39. state = "上传文件大小超过限制!";
  40. }
  41. }
  42. else
  43. {
  44. state = "上传文件扩展名是不允许的扩展名!";
  45. }
  46. context.Response.Write("{'url':'" + FullPath.Replace("~","") + "','state':'" + state + "'}");
  47. }

当这两个文件建完以后我们要上传图片的提交路径,在Ueditor/image/image.html,更改image.html下的如图的代码:


然后,就可以了,但是会有一个结果就是上传的图片能上传成功,但是不能正确的插入到编辑器中,如下图:



然后我们将编辑器只的内容显示出来,看看是什么情况:



是路径不正确,那我们找可以在editor_config.js中进行修改如图:

将图中的代码改成:URL.replace("/Ueditor/","")就行了



还有一点就是up.ashx反回的图片的URL地址不能是带 “~”号的,这样的话。就能让传了。我们看一下效果 :


到这里就完了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/230327
推荐阅读
相关标签
  

闽ICP备14008679号