[实战]MVC5+EF6+MySql企业网盘实战(13)——编辑文件夹
写在前面
上篇文章实现了,新建文件夹以及与之前的上传文件的逻辑做了集成,本篇文章将实现编辑文件夹名称,其实这个也有难点,就是编辑文件夹名称时,要考虑文件夹中存在文件或者子文件夹的情况,因为他们的路径已经在数据库中存在了,如何对这些路径修改,是个难点。
系列文章
[EF]vs15+ef6+mysql code first方式
[实战]MVC5+EF6+MySql企业网盘实战(2)——用户注册
[实战]MVC5+EF6+MySql企业网盘实战(3)——验证码
[实战]MVC5+EF6+MySql企业网盘实战(4)——上传头像
[实战]MVC5+EF6+MySql企业网盘实战(5)——登录界面,头像等比例压缩
[实战]MVC5+EF6+MySql企业网盘实战(5)——页面模板
[实战]MVC5+EF6+MySql企业网盘实战(5)——ajax方式注册
[实战]MVC5+EF6+MySql企业网盘实战(6)——ajax方式登录
[实战]MVC5+EF6+MySql企业网盘实战(7)——文件上传
[实战]MVC5+EF6+MySql企业网盘实战(8)——文件下载、删除
[实战]MVC5+EF6+MySql企业网盘实战(9)——编辑文件名
[实战]MVC5+EF6+MySql企业网盘实战(10)——新建文件夹
[实战]MVC5+EF6+MySql企业网盘实战(11)——新建文件夹2
[实战]MVC5+EF6+MySql企业网盘实战(12)——新建文件夹和上传文件
[实战]MVC5+EF6+MySql企业网盘实战(13)——编辑文件夹
代码片段
首先先实现,没有子目录的情况下对文件夹名称进行编辑。另外,还需要考虑物理文件所在目录的重命名问题。
代码如下(一更)
public JsonResult EditFolder() { UserInfo userInfo = Session["user"] as UserInfo; if (userInfo == null) { RedirectToAction("Login", "UserInfo"); } string strId = Request.Params["fileId"]; string strNewFolderName = Request.Params["fileNewName"]; JavaScriptSerializer jss = new JavaScriptSerializer(); if (string.IsNullOrEmpty(strId)) { return new JsonResult() { Data = jss.Serialize(new { code = 500, msg = "请选择要编辑的文件夹" }) }; } if (string.IsNullOrEmpty(strNewFolderName)) { return new JsonResult() { Data = jss.Serialize(new { code = 500, msg = "文件夹名称不能为空" }) }; } int folderId = Convert.ToInt32(strId); var findFolder = _myFileServiceRepository.Find(x => x.Id == folderId && x.User.Id == userInfo.Id && x.IsDelete == false); if (findFolder != null) { string strOldFolderName = findFolder.FileName + "/"; //找到所有的目录,以 findFolder.FileName 结尾的目录,并修改 var folders = _myFileServiceRepository.FindAll(x => x.User.Id == userInfo.Id && x.FolderPath.EndsWith(strOldFolderName) && x.IsDelete == false); foreach (var item in folders) { string folderPath = item.FolderPath.Trim('/'); item.FolderPath = folderPath.Substring(0, folderPath.LastIndexOf('/')) + "/" + strNewFolderName + "/"; _myFileServiceRepository.Update(item); } findFolder.FileName = strNewFolderName; _myFileServiceRepository.Update(findFolder); _myFileServiceRepository.SaveChanges(); } return new JsonResult() { Data = jss.Serialize(new { code = 200, msg = "修改成功" }) }; }
前端
function editFile(fileId, fileName,isFolder) { $(".modal-body").html(''); $(".modal-body").html('<input type="text" placeholder="请输入名称" class="form-control" name="name" value="' + fileName + '" id="txtFileName" />'); $("#modal-edit").modal('show'); //弹出框注册取消,保存事件 $('#lnkCancel').click(function () { //单机取消,清空内容 $("#txtFileName").val(''); }); //首先移除已经绑定的单机事件 $('#lnkSave').unbind('click'); $('#lnkSave').bind('click', function () { var file = { fileId: fileId, fileNewName: $('#txtFileName').val() }; var url=isFolder==1?'/Home/EditFolder':'/Home/EditFileName'; $.post(url, file, function (data) { data = JSON.parse(data); if (data.code == 200) { $('#sp-' + fileId).html(file.fileNewName); }else { alert(data.msg); } }); }); };
总结
今天就先到这里,代码逻辑还不完善。继续更新。太困了,眼睛睁不开了。
-
博客地址:http://www.cnblogs.com/wolf-sun/
博客版权:如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。