mysql做网盘_[实战]MVC5+EF6+MySql企业网盘实战(13)——编辑文件夹

写在前面

上篇文章实现了,新建文件夹以及与之前的上传文件的逻辑做了集成,本篇文章将实现编辑文件夹名称,其实这个也有难点,就是编辑文件夹名称时,要考虑文件夹中存在文件或者子文件夹的情况,因为他们的路径已经在数据库中存在了,如何对这些路径修改,是个难点。

系列文章

[实战]MVC5+EF6+MySql企业网盘实战(13)——编辑文件夹

代码片段

首先先实现,没有子目录的情况下对文件夹名称进行编辑。另外,还需要考虑物理文件所在目录的重命名问题。

代码如下(一更)

publicJsonResult EditFolder()

{

UserInfo userInfo= Session["user"] asUserInfo;if (userInfo == null)

{

RedirectToAction("Login", "UserInfo");

}string strId = Request.Params["fileId"];string strNewFolderName = Request.Params["fileNewName"];

JavaScriptSerializer jss= newJavaScriptSerializer();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 infolders)

{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('');

$("#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);

}

});

});

};

总结

今天就先到这里,代码逻辑还不完善。继续更新。太困了,眼睛睁不开了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值