一、图片上传和文件上传
后台代码:
//上传图片 [HttpPost] public async Task<IActionResult> UploadImage([FromForm(Name = "file")] IFormFile file, string name, string password) { string url = string.Empty; try { DbContext db = new DbContext(); Users user = db.Db.Queryable<Users>().Where(p => p.UserName == name).First(); //T_AccountModel userAccount = db.Db.Context..FirstOrDefault(t => t.UserName == Account); if (user != null) { return Json(new { State = false, Code = 0, Msg = "该用户名已被注册!", Time = DateTime.Now.ToString() }); } //图片上传 string date = DateTime.Now.ToString("yyyy-MM-dd"); url = "/Upload/" + date + "/"; string path = Path.Combine(Environment.CurrentDirectory, "Upload", date); if (!System.IO.Directory.Exists(path))//判断上传路径是否存在 { System.IO.Directory.CreateDirectory(path); } string filePath = string.Empty; string fileName = string.Empty; if (file.Length > 0) { //定义图片数组后缀格式 string[] LimitPictureType = { ".JPG", ".JPEG", ".GIF", ".PNG", ".BMP" }; string fileFormat = System.IO.Path.GetExtension(file.FileName).ToUpper();//获取文件后缀格式 if (LimitPictureType.Contains(fileFormat)) { fileName = Guid.NewGuid().ToString("n") + fileFormat; filePath = Path.Combine(path, fileName);//中间处理为唯一格式文件 url = url + fileName; using (var stream = new FileStream(filePath, FileMode.Create)) { try { //保存文件 await file.CopyToAsync(stream); } catch (Exception ex) { return Json(new { State = false, data = new { src = url }, Code = 0, Msg = "文件保存失败!", Time = DateTime.Now.ToString() }); } } } else { return Json(new { State = false, Code = 0, Msg = "请上传指定格式的图片!", Time = DateTime.Now.ToString() }); } } // } catch (Exception e) { Trace.WriteLine("异常:" + e); } return Json(new { State = false, Code = 0, data = new { src = url }, Msg = "图片上传成功!", Time = DateTime.Now.ToString() }); } //上传文件 [HttpPost] public async Task<IActionResult> UploadFile([FromForm(Name = "file")] IFormFile file, string name, string password) { string url = string.Empty; try { DbContext db = new DbContext(); Users user = db.Db.Queryable<Users>().Where(p => p.UserName == name).First(); //T_AccountModel userAccount = db.Db.Context..FirstOrDefault(t => t.UserName == Account); if (user != null) { return Json(new { State = false, Code = 0, Msg = "该用户名已被注册!", Time = DateTime.Now.ToString() }); } //文件上传 string date = DateTime.Now.ToString("yyyy-MM-dd"); url = "/Upload/" + date + "/"; string path = Path.Combine(Environment.CurrentDirectory, "Upload", date); if (!System.IO.Directory.Exists(path))//判断上传路径是否存在 { System.IO.Directory.CreateDirectory(path); } string filePath = string.Empty; string fileName = string.Empty; if (file.Length > 0) { string fileFormat = System.IO.Path.GetExtension(file.FileName).ToUpper();//获取文件后缀格式 fileName = Guid.NewGuid().ToString("n") + fileFormat; filePath = Path.Combine(path, fileName);//中间处理为唯一格式文件 url = url + fileName; using (var stream = new FileStream(filePath, FileMode.Create)) { try { //保存文件 await file.CopyToAsync(stream); } catch (Exception ex) { return Json(new { State = false, data = new { src = url }, Code = 0, Msg = "文件保存失败!", Time = DateTime.Now.ToString() }); } } } // } catch (Exception e) { Trace.WriteLine("异常:" + e); } return Json(new { State = false, Code = 0, data = new { src = url,name= file.FileName}, Msg = "图片上传成功!", Time = DateTime.Now.ToString() }); }
前台代码
//上传图片接口(返回的数据格式见下文),若不开启图片上传,剔除该项即可
uploadImage: {
url: '/LayIM/UploadImage', //接口地址
type: 'post' //默认post
},
//上传文件接口(返回的数据格式见下文),若不开启文件上传,剔除该项即可
uploadFile: {
url: '/LayIM/UploadFile', //接口地址
type: 'post' //默认post
},
//扩展工具栏,下文会做进一步介绍(如果无需扩展,剔除该项即可)
tool: [{
alias: 'code', //工具别名
title: '代码', //工具名称
icon: '' //工具图标,参考图标文档
}],
监听工具栏
//监听自定义工具栏点击,以添加代码为例
layim.on('tool(code)', function (insert, send, obj) { //事件中的tool为固定字符,而code则为过滤器,对应的是工具别名(alias)
layer.prompt({
title: '插入代码'
, formType: 2
, shade: 0
}, function (text, index) {
layer.close(index);
insert('[pre class=layui-code]' + text + '[/pre]'); //将内容插入到编辑器,主要由insert完成
//send(); //自动发送
});
console.log(this); //获取当前工具的DOM对象
console.log(obj); //获得当前会话窗口的DOM对象、基础信息
});
//ready内结束