kindtor默认使用的上传方法是使用目录下面的一般处理程序upload_json.ashx,暂时还不支持asp.net core下的文件上传,下面放出的自定义处理上传文件的接口方法。

自定义接收上传文件的action替换一般处理程序

代码如下:

  1. public class FileController : Controller
  2. {
  3. private readonly IHostingEnvironment _hostingEnvironment;
  4. public FileController(IHostingEnvironment hostingEnvironment)
  5. {
  6. _hostingEnvironment = hostingEnvironment;
  7. }
  8. public async Task<IActionResult> KindEditorImgUpload()
  9. {
  10. Dictionary<string, string> extTable = new Dictionary<string, string>();
  11. extTable.Add("image", "gif,jpg,jpeg,png,bmp");
  12. extTable.Add("flash", "swf,flv");
  13. extTable.Add("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");
  14. extTable.Add("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");
  15. //最大文件大小
  16. int maxSize = ;
  17. var context = Request.HttpContext;
  18. var imgFile = Request.Form.Files[];
  19.  
  20. //文件类型
  21. string dirName = Request.Query["dir"];
  22. if (string.IsNullOrEmpty(dirName))
  23. {
  24. dirName = "image";
  25. }
  26. if (!extTable.ContainsKey(dirName))
  27. {
  28. showError("目录名不正确。");
  29. }
  30. String fileName = imgFile.FileName;
  31. String fileExt = Path.GetExtension(fileName).ToLower();
  32.  
  33. if (imgFile== null || imgFile.Length > maxSize)
  34. {
  35. showError("上传文件大小超过限制。");
  36. }
  37. if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(((String)extTable[dirName]).Split(','), fileExt.Substring().ToLower()) == -)
  38. {
  39. showError("上传文件扩展名是不允许的扩展名。\n只允许" + ((String)extTable[dirName]) + "格式。");
  40. }
  41. string saveDir = Request.Query["saveDir"];
  42. string saveDirStr = null;
  43. if (saveDir == null)
  44. {
  45. saveDirStr = "tmp";
  46. }
  47. else
  48. {
  49. saveDirStr = saveDir.ToString();
  50. }
  51. //文件保存目录
  52. string contentRootPath = _hostingEnvironment.ContentRootPath;
  53. string savePath = "/wwwroot/upload/kindeditor/" + dirName + "/" + saveDirStr;
  54. string dirPath =contentRootPath +savePath;
  55. if (!Directory.Exists(dirPath))
  56. {
  57. Directory.CreateDirectory(dirPath);
  58. }
  59.  
  60. String newFileName = DateTime.Now.ToString("_yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + fileExt;
  61. String filePath = dirPath + "/" + newFileName;
  62. using (FileStream fs = System.IO.File.Create(filePath))
  63. {
  64. await imgFile.CopyToAsync(fs);
  65. fs.Flush();
  66. }
  67. Dictionary<string, object> hash = new Dictionary<string, object>();
  68.  
  69. hash["url"] = (savePath + "/" + newFileName).Replace("/wwwroot", "");
  70. hash["error"] = ;
  71. Response.Headers.Add("Content-Type", "text/html; charset=UTF-8");
  72. return Json(hash);
  73. }
  74. private IActionResult showError(string message)
  75. {
  76. Dictionary<string, object> hash = new Dictionary<string, object>();
  77.  
  78. hash["error"] = ;
  79. hash["message"] = message;
  80. Response.Headers.Add("Content-Type", "text/html; charset=UTF-8");
  81. return Json(hash);
  82. }
  83.  
  84. }

对应的kindeditor编辑view代码

  1. @{
  2. Layout = null;
  3. }
  4.  
  5. <!DOCTYPE html>
  6.  
  7. <html>
  8. <head>
  9. <meta name="viewport" content="width=device-width" />
  10. <title>Index</title>
  11. <script src="~/lib/jquery/dist/jquery.js"></script>
  12. <link href="~/lib/kindeditor-4.1.10/themes/default/default.css" rel="stylesheet" />
  13. <script src="~/lib/kindeditor-4.1.10/kindeditor.js"></script>
  14. <script src="~/lib/kindeditor-4.1.10/lang/zh_CN.js"></script>
  15. </head>
  16. <body>
  17. <div class="form-horizontal col-sm-12">
  18.  
  19. <textarea rows="8" class="form-control" name="Content" id="Content" style="width:950px;height:500px;visibility:hidden;"></textarea>
  20.  
  21. </div>
  22. <script>
  23. KindEditor.ready(function (K) {
  24. window.NewsContent = K.create("#Content", {
  25. cssPath: '/lib/kindeditor-4.1.10/plugins/code/prettify.css',
  26. uploadJson: '/File/KindEditorImgUpload?saveDir=news_content',
  27. fileManagerJson: '/lib/kindeditor-4.1.10/asp.net/file_manager_json.ashx',
  28. allowFileManager: true,
  29. afterCreate: function () {
  30. this.sync();
  31. },
  32. afterBlur: function () {
  33. this.sync();
  34. }
  35. });
  36. $(".ke-container").addClass("form-control");
  37. });
  38.  
  39. </script>
  40. </body>
  41. </html>

改造kindeditor支持asp.net core mvc上传文件的更多相关文章

  1. ASP.NET Core MVC上传文件

    使用模型绑定上传小文件 HTML代码: <form method="post" enctype="multipart/form-data" asp-con ...

  2. ASP.NET Core MVC上传、导入、导出知多少

    前言 本君已成夜猫子,本节我们来讲讲ASP.NET Core MVC中的上传,这两天才研究批量导入功能,本节顺便简单搞搞导入.导出,等博主弄妥当了再来和大家一并分享. .NET Core MVC上传 ...

  3. asp.net core mvc上传大文件解决方案

    默认上传文件大小不超过30M 第一个问题: IIS 10.0 详细错误 - 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 服务器上的请求筛选被配置为拒绝该请求 ...

  4. asp.net core分块上传文件

    写完asp.net多文件上传(http://www.cnblogs.com/bestckk/p/5987383.html)后,感觉这种上传还是有很多缺陷,于是...(省略一万字,不废话).这里我没用传 ...

  5. asp.net MVC 上传文件 System.Web.HttpException: 超过了最大请求长度

    APS.NET MVC 上传文件出现  System.Web.HttpException: 超过了最大请求长度 这个问题 原因是 默认最大上传文件大小为4096,而我提交的文件太大了. 解决方案:修改 ...

  6. net core分块上传文件

    net core分块上传文件   写完asp.net多文件上传(http://www.cnblogs.com/bestckk/p/5987383.html)后,感觉这种上传还是有很多缺陷,于是...( ...

  7. Spring MVC上传文件

    Spring MVC上传文件 1.Web.xml中加入 <servlet> <servlet-name>springmvc</servlet-name> <s ...

  8. MVC上传文件

    ASP.NET MVC上传文件是必段撑握的知识.加强训练才是.以前Insus.NET曾使用第三方MyAjaxForm.js :http://www.cnblogs.com/insus/p/378548 ...

  9. 一、.Net Core 分块上传文件

    一..Net Core 分块上传文件 一.前端实现 @* For more information on enabling MVC for empty projects, visit http://g ...

随机推荐

  1. Asp.net Zero 应用实战-官方示例PhoneBook学习1

    适用Zero版本:ASP.NET Core & Angular 2+ (aspnet-zero-core-3.1.0). 该版本官方有两个solution文件夹:Angular(前端) 和 a ...

  2. Filter的介绍及使用

    转:http://blog.csdn.net/zhaozheng7758/article/details/6105749 一.Filter的介绍及使用 什么是过滤器? 与Servlet相似,过滤器是一 ...

  3. 第一个VS2015 Xaramin Android项目(终)

    其实还有一个问题没解决,也拖很久了.中途公司的项目太紧导致无法学习更新. 之前的问题是这样的:项目搭建成功了,App也成功发布到虚拟机.便尝试增加控件 Xaml 设计界面如下: 但是在虚拟机运行却这样 ...

  4. 【机器学习】K均值算法(I)

    K均值算法是一类非监督学习类,其可以通过观察样本的离散性来对样本进行分类. 例如,在对如下图所示的样本中进行聚类,则执行如下步骤 1:随机选取3个点作为聚类中心. 2:簇分配:遍历所有样本然后依据每个 ...

  5. C++ 中利用 Opencv 得到不规则的ROI 区域(已知不规则区域)

    因为需要,之前写了一个利用mask 得到不规则ROI 区域的程序. 现在需要修改,发现自己都看不懂是怎么做的了.. 所以把它整理下来. 首先利用 鼠标可以得到 你想要的不规则区域的 顶点信息.具体这里 ...

  6. Python从入门到精通之Second!

    初识Python基础! -基础     -扩展名可以是任意的,但是导入模块时,如果不是.py文件就会报错. -两种执行方式      1.python解释器       文件名.py 文件路径 -Li ...

  7. SAS 操作数据集的观测

    SAS  操作数据集的观测 1. SAS表达式 表达式是操作数和操作符的序列,该序列会形成一组可执行并产生 结果值的指令.其中,操作数可以是常量.变量或表达式:操作符是表 示比较.数学计算或逻辑运算的 ...

  8. nginx上传文件时 nginx 413 Request Entity Too Large 错误

    产生原因: 上传文件的大小超出了 Nginx 允许的最大值,默认是1M: 解决方法: 修改Nginx的配置文件(一般是:nginx/nginx.conf),在 http{} 段中增大nginx上传文件 ...

  9. oracle表空间自增

    https://blog.csdn.net/windylfm/article/details/78085669

  10. 16.The Effect of Advertisement 广告的影响

    16.The Effect of Advertisement 广告的影响 (1) The appeal of advertising to buying motives can have both n ...