改造kindeditor支持asp.net core mvc上传文件
kindtor默认使用的上传方法是使用目录下面的一般处理程序upload_json.ashx,暂时还不支持asp.net core下的文件上传,下面放出的自定义处理上传文件的接口方法。
自定义接收上传文件的action替换一般处理程序
代码如下:
- public class FileController : Controller
- {
- private readonly IHostingEnvironment _hostingEnvironment;
- public FileController(IHostingEnvironment hostingEnvironment)
- {
- _hostingEnvironment = hostingEnvironment;
- }
- public async Task<IActionResult> KindEditorImgUpload()
- {
- Dictionary<string, string> extTable = new Dictionary<string, string>();
- 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 = ;
- var context = Request.HttpContext;
- var imgFile = Request.Form.Files[];
- //文件类型
- string dirName = Request.Query["dir"];
- if (string.IsNullOrEmpty(dirName))
- {
- dirName = "image";
- }
- if (!extTable.ContainsKey(dirName))
- {
- showError("目录名不正确。");
- }
- String fileName = imgFile.FileName;
- String fileExt = Path.GetExtension(fileName).ToLower();
- if (imgFile== null || imgFile.Length > maxSize)
- {
- showError("上传文件大小超过限制。");
- }
- if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(((String)extTable[dirName]).Split(','), fileExt.Substring().ToLower()) == -)
- {
- showError("上传文件扩展名是不允许的扩展名。\n只允许" + ((String)extTable[dirName]) + "格式。");
- }
- string saveDir = Request.Query["saveDir"];
- string saveDirStr = null;
- if (saveDir == null)
- {
- saveDirStr = "tmp";
- }
- else
- {
- saveDirStr = saveDir.ToString();
- }
- //文件保存目录
- string contentRootPath = _hostingEnvironment.ContentRootPath;
- string savePath = "/wwwroot/upload/kindeditor/" + dirName + "/" + saveDirStr;
- string dirPath =contentRootPath +savePath;
- if (!Directory.Exists(dirPath))
- {
- Directory.CreateDirectory(dirPath);
- }
- String newFileName = DateTime.Now.ToString("_yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + fileExt;
- String filePath = dirPath + "/" + newFileName;
- using (FileStream fs = System.IO.File.Create(filePath))
- {
- await imgFile.CopyToAsync(fs);
- fs.Flush();
- }
- Dictionary<string, object> hash = new Dictionary<string, object>();
- hash["url"] = (savePath + "/" + newFileName).Replace("/wwwroot", "");
- hash["error"] = ;
- Response.Headers.Add("Content-Type", "text/html; charset=UTF-8");
- return Json(hash);
- }
- private IActionResult showError(string message)
- {
- Dictionary<string, object> hash = new Dictionary<string, object>();
- hash["error"] = ;
- hash["message"] = message;
- Response.Headers.Add("Content-Type", "text/html; charset=UTF-8");
- return Json(hash);
- }
- }
对应的kindeditor编辑view代码
- @{
- Layout = null;
- }
- <!DOCTYPE html>
- <html>
- <head>
- <meta name="viewport" content="width=device-width" />
- <title>Index</title>
- <script src="~/lib/jquery/dist/jquery.js"></script>
- <link href="~/lib/kindeditor-4.1.10/themes/default/default.css" rel="stylesheet" />
- <script src="~/lib/kindeditor-4.1.10/kindeditor.js"></script>
- <script src="~/lib/kindeditor-4.1.10/lang/zh_CN.js"></script>
- </head>
- <body>
- <div class="form-horizontal col-sm-12">
- <textarea rows="8" class="form-control" name="Content" id="Content" style="width:950px;height:500px;visibility:hidden;"></textarea>
- </div>
- <script>
- KindEditor.ready(function (K) {
- window.NewsContent = K.create("#Content", {
- cssPath: '/lib/kindeditor-4.1.10/plugins/code/prettify.css',
- uploadJson: '/File/KindEditorImgUpload?saveDir=news_content',
- fileManagerJson: '/lib/kindeditor-4.1.10/asp.net/file_manager_json.ashx',
- allowFileManager: true,
- afterCreate: function () {
- this.sync();
- },
- afterBlur: function () {
- this.sync();
- }
- });
- $(".ke-container").addClass("form-control");
- });
- </script>
- </body>
- </html>
改造kindeditor支持asp.net core mvc上传文件的更多相关文章
- ASP.NET Core MVC上传文件
使用模型绑定上传小文件 HTML代码: <form method="post" enctype="multipart/form-data" asp-con ...
- ASP.NET Core MVC上传、导入、导出知多少
前言 本君已成夜猫子,本节我们来讲讲ASP.NET Core MVC中的上传,这两天才研究批量导入功能,本节顺便简单搞搞导入.导出,等博主弄妥当了再来和大家一并分享. .NET Core MVC上传 ...
- asp.net core mvc上传大文件解决方案
默认上传文件大小不超过30M 第一个问题: IIS 10.0 详细错误 - 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 服务器上的请求筛选被配置为拒绝该请求 ...
- asp.net core分块上传文件
写完asp.net多文件上传(http://www.cnblogs.com/bestckk/p/5987383.html)后,感觉这种上传还是有很多缺陷,于是...(省略一万字,不废话).这里我没用传 ...
- asp.net MVC 上传文件 System.Web.HttpException: 超过了最大请求长度
APS.NET MVC 上传文件出现 System.Web.HttpException: 超过了最大请求长度 这个问题 原因是 默认最大上传文件大小为4096,而我提交的文件太大了. 解决方案:修改 ...
- net core分块上传文件
net core分块上传文件 写完asp.net多文件上传(http://www.cnblogs.com/bestckk/p/5987383.html)后,感觉这种上传还是有很多缺陷,于是...( ...
- Spring MVC上传文件
Spring MVC上传文件 1.Web.xml中加入 <servlet> <servlet-name>springmvc</servlet-name> <s ...
- MVC上传文件
ASP.NET MVC上传文件是必段撑握的知识.加强训练才是.以前Insus.NET曾使用第三方MyAjaxForm.js :http://www.cnblogs.com/insus/p/378548 ...
- 一、.Net Core 分块上传文件
一..Net Core 分块上传文件 一.前端实现 @* For more information on enabling MVC for empty projects, visit http://g ...
随机推荐
- Asp.net Zero 应用实战-官方示例PhoneBook学习1
适用Zero版本:ASP.NET Core & Angular 2+ (aspnet-zero-core-3.1.0). 该版本官方有两个solution文件夹:Angular(前端) 和 a ...
- Filter的介绍及使用
转:http://blog.csdn.net/zhaozheng7758/article/details/6105749 一.Filter的介绍及使用 什么是过滤器? 与Servlet相似,过滤器是一 ...
- 第一个VS2015 Xaramin Android项目(终)
其实还有一个问题没解决,也拖很久了.中途公司的项目太紧导致无法学习更新. 之前的问题是这样的:项目搭建成功了,App也成功发布到虚拟机.便尝试增加控件 Xaml 设计界面如下: 但是在虚拟机运行却这样 ...
- 【机器学习】K均值算法(I)
K均值算法是一类非监督学习类,其可以通过观察样本的离散性来对样本进行分类. 例如,在对如下图所示的样本中进行聚类,则执行如下步骤 1:随机选取3个点作为聚类中心. 2:簇分配:遍历所有样本然后依据每个 ...
- C++ 中利用 Opencv 得到不规则的ROI 区域(已知不规则区域)
因为需要,之前写了一个利用mask 得到不规则ROI 区域的程序. 现在需要修改,发现自己都看不懂是怎么做的了.. 所以把它整理下来. 首先利用 鼠标可以得到 你想要的不规则区域的 顶点信息.具体这里 ...
- Python从入门到精通之Second!
初识Python基础! -基础 -扩展名可以是任意的,但是导入模块时,如果不是.py文件就会报错. -两种执行方式 1.python解释器 文件名.py 文件路径 -Li ...
- SAS 操作数据集的观测
SAS 操作数据集的观测 1. SAS表达式 表达式是操作数和操作符的序列,该序列会形成一组可执行并产生 结果值的指令.其中,操作数可以是常量.变量或表达式:操作符是表 示比较.数学计算或逻辑运算的 ...
- nginx上传文件时 nginx 413 Request Entity Too Large 错误
产生原因: 上传文件的大小超出了 Nginx 允许的最大值,默认是1M: 解决方法: 修改Nginx的配置文件(一般是:nginx/nginx.conf),在 http{} 段中增大nginx上传文件 ...
- oracle表空间自增
https://blog.csdn.net/windylfm/article/details/78085669
- 16.The Effect of Advertisement 广告的影响
16.The Effect of Advertisement 广告的影响 (1) The appeal of advertising to buying motives can have both n ...