kindeditor副文档编辑器
来源:互联网 发布:淘宝换身份证开店 编辑:程序博客网 时间:2024/04/26 23:04
概述:
这个富文本功能特别强大
支持图片的批量上传和视频上传(只支持flash这种单一的方式很不好,不过可以修改支持的格式,网上有好多例子有心者可以上网学习)等好多功能
目的:
kindeditor是一套开源的html可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容ie、 firefox、chrome、 safari、opera等主流浏览器。 kindeditor使用javascript编写,可以无缝的与java、.net、php、asp等程序接合
问题:
体积小,加载速度快,但功能十分丰富。
内置自定义range,完美地支持span标记。
基于插件的方式设计,所有功能都是插件,增加自定义和扩展功能非常简单。
修改编辑器风格很容易,只需修改一个CSS文件。
代码:
引用文件
<link href="~/Kindeditor/themes/default/default.css" rel="stylesheet" />
<link href="~/Kindeditor/plugins/code/prettify.css" rel="stylesheet" />
<script src="~/Kindeditor/kindeditor.js"></script>
<script src="~/Kindeditor/lang/zh_CN.js"></script>
<script src="~/Kindeditor/plugins/code/prettify.js"></script>
脚本
<script>
var editor;
KindEditor.ready(function (K) {
editor = K.create('textarea[name="txtContent"]', {
resizeType: 1,
uploadJson: '/Home/UploadImages' 这里是图片上传路径
});
editor = K.create('textarea[name="content"]', {
filterMode: false//是否开启过滤模式
});
});
</script>
页面
<form id="formGuestBook" method="post" action="/Home/Add">
标题:<input id="Text1" type="text" name="strname" /><br /><br />
@*<select id="Select1">
</select>*@
@Html.DropDownList("Tid")
<br />
<br />
<br />
<!--类名/方法名-->
<textarea id="txtContent" name="txtContent" style="width:800px;height:400px;visibility:hidden;"></textarea>
<br />
<input type="submit" name="btnSubmitGuestBook" class="btn btn-info" value="提交留言" style="float:right" />
</form>
效果
控制器方法
/// <summary>
/// 写博文页面
/// </summary>
/// <returns></returns>
public ActionResult WriteBlog()
{
conn.Open();
string sqll = string.Format("select * from T_type");
SqlDataAdapter sd = new SqlDataAdapter(sqll,conn);
DataTable dt = new DataTable();
sd.Fill(dt);
List<JokeType> lis = new List<JokeType>();
foreach (DataRow dr in dt.Rows)
{
JokeType t = new JokeType();
t.Tid = Convert.ToInt32(dr["Tid"]);
t.Tname = dr["Tname"].ToString();
lis.Add(t);
}
conn.Close();
ViewBag.Tid = new SelectList(lis, "Tid", "Tname");
return View();
}
/// <summary>
/// 博文保存
/// </summary>
/// <param name="txtContent"></param>
/// <param name="strname"></param>
/// <param name="Tid"></param>
/// <returns></returns>
[ValidateInput(false)]........................................................................................这里一定要注意否则会报错
public ActionResult Add(string txtContent, string strname,int Tid)
{
conn.Open();
T_joke tj = new T_joke();
tj.Tid = Tid;
tj.Jtime = DateTime.Now.ToString("yyyy年MM月dd日hh时mm分");
tj.Uid = Convert.ToInt32(Session["Uid"]);
string sql = string.Format("insert into T_joke values('{0}','{1}','{2}',{3},{4})", strname, txtContent, tj.Jtime, tj.Uid, tj.Tid);
SqlCommand comm = new SqlCommand(sql,conn);
int i = comm.ExecuteNonQuery();
conn.Close();
if (i > 0)
{
return Content("<script>alert('发布成功');location.href='/Home/WriteBlog'</script>");
}
return Content("<script>alert('网络繁忙???请稍后重试');location.href='/Home/WriteBlog'</script>");
}
/// <summary>
/// 上传保存
/// </summary>
/// <returns></returns>
public ActionResult UploadImages()
{
//String aspxUrl = HttpContext.Request.Path.Substring(0, HttpContext.Request.Path.LastIndexOf("/") + 1);
String aspxUrl = "";
//文件保存目录路径
String savePath = "/Content/KindEditor/attached/";
//文件保存目录URL
String saveUrl = aspxUrl + "/Content/KindEditor/attached/";
//定义允许上传的文件扩展名
Hashtable extTable = new Hashtable();
extTable.Add("image", "gif,jpg,jpeg,png,bmp");
extTable.Add("flash", "swf,flv");
extTable.Add("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
extTable.Add("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");
//最大文件大小
int maxSize = 999999999;
//this.context = HttpContext;
HttpPostedFileBase imgFile = HttpContext.Request.Files["imgFile"];
if (imgFile == null)
{
showError("请选择文件。");
}
String dirPath = HttpContext.Server.MapPath(savePath);
if (!Directory.Exists(dirPath))
{
showError("上传目录不存在。");
}
String dirName = HttpContext.Request.QueryString["dir"];
if (String.IsNullOrEmpty(dirName))
{
dirName = "image";
}
if (!extTable.ContainsKey(dirName))
{
showError("目录名不正确。");
}
String fileName = imgFile.FileName;
String fileExt = Path.GetExtension(fileName).ToLower();
if (imgFile.InputStream == null || imgFile.InputStream.Length > maxSize)
{
showError("上传文件大小超过限制。");
}
if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(((String)extTable[dirName]).Split(','), fileExt.Substring(1).ToLower()) == -1)
{
showError("上传文件扩展名是不允许的扩展名。\n只允许" + ((String)extTable[dirName]) + "格式。");
}
//创建文件夹
dirPath += dirName + "/";
saveUrl += dirName + "/";
if (!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
String ymd = DateTime.Now.ToString("yyyyMMdd", DateTimeFormatInfo.InvariantInfo);
dirPath += ymd + "/";
saveUrl += ymd + "/";
if (!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
String newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + fileExt;
String filePath = dirPath + newFileName;
imgFile.SaveAs(filePath);
String fileUrl = saveUrl + newFileName;
Hashtable hash = new Hashtable();
hash["error"] = 0;
hash["url"] = fileUrl;
return Content(JsonMapper.ToJson(hash));
//return View();
}
- kindeditor副文档编辑器
- KindEditor编辑器API文档
- KindEditor-KindEditor API 文档
- KindEditor-KindEditor API 文档
- KindEditor文档
- 副文本编辑器 网页编辑器
- kindEditor编辑器的使用
- 可视化HTML编辑器 KindEditor
- KindEditor 在线编辑器
- kindeditor 编辑器的用法
- [编辑器]KindEditor 是什么?
- KindEditor 编辑器使用方法
- 线HTML编辑器KindEditor
- kindeditor编辑器 的使用方法!
- KindEditor编辑器的使用
- 所见即所得编辑器kindeditor
- KindEditor 编辑器使用方法
- 在线HTML编辑器 KindEditor
- Android 数据存储之SQLite数据库
- lesson 4 communication pattern
- Lua学习笔记(二)
- insert table 和create table as 区别及举例
- 迭代器
- kindeditor副文档编辑器
- SQL的主键和外键的作用
- POJ 3318 Matrix Multiplication 随机化算法
- 关于JDBC操作MySQL实例
- PHPUnit单元测试(Lumen框架)指南
- InfluxDB 初探
- DataTable行筛选
- 微服务了解
- Lua学习笔记(三)