mvc5 ef6 mysql_[实战]MVC5+EF6+MySql企业网盘实战(10)——新建文件夹

写在前面

上篇文章更新了编辑了文件名的操作,本片文章将实现新建文件夹的功能。

系列文章

代码片段

实现目标:可以新建文件夹。默认文件夹排在列表前面并按照时间进行排序。为了减少查询的次数,需要添加一个字段标示是否是文件夹,可置为0,文件置为1,按照这个字段排序,并按照时间进行排序。

为MyFile类添加属性,IsFolder

public int IsFolder { get; set; }

修改文件上传,文件类型为1,并修改文件列表,按照文件类型,时间排序。

[HttpGet]publicActionResult FileList()

{

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

{return RedirectToAction("Login", "UserInfo");

}var fileList = _myFileServiceRepository.FindAll(x => x.User.Id == userInfo.Id && !x.IsDelete).OrderBy(x => x.IsFolder).OrderByDescending(x =>x.CreateDt);

ViewBag.UserInfo=userInfo;

ViewBag.ChildTitle= "我的网盘";returnView(fileList);

}

新建文件夹

publicJsonResult CreateFolder()

{

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

{

RedirectToAction("Login", "UserInfo");

}string folderPath = Request.Params["folderPath"];string folderName = Request.Params["folderName"];if (string.IsNullOrEmpty(folderName))

{throw new ArgumentNullException("文件夹名称不能为空");

}//检查文件夹是否已经存在

var count = _myFileServiceRepository.FindAll(x => x.User.Id == userInfo.Id && x.IsFolder == 0 && x.IsDelete == false &&x.FileName.Contains(folderName)).Count();

userInfo= _userInfoServiceRepository.Find(x => x.Id ==userInfo.Id);if (count > 0)

{//如果不存在,则新建,否则进行自动重命名

folderName = folderName + "(" + (count + 1).ToString() + ")";

}if (string.IsNullOrEmpty(folderPath))

{

folderPath= "/NetDisk/" +userInfo.UserName;

}

MyFile folder= newMyFile()

{

FilePath= folderPath + '/' +folderName,

FileName=folderName,

CreateDt=DateTime.Now,

User=userInfo,

FileExt= string.Empty,

FileIcon= "/Content/Images/FolderType.png",

FileMd5= string.Empty,

FileSize= 0,

IsDelete= false,

ModifyDt=DateTime.Now

};try{

_myFileServiceRepository.Add(folder);

_myFileServiceRepository.SaveChanges();

}catch(Exception)

{return new JsonResult() { Data = new JavaScriptSerializer().Serialize(new { code = 500, msg = "创建失败"}) };

}return new JsonResult() { Data = new JavaScriptSerializer().Serialize(new { code = 200, folder =folder }) };

}

前端

@{int i = 0;}

@foreach (var item inModel)

{

i++;

@{if (@item.FileMd5 != "")

{

@item.FileName@item.FileSize 字节}else{

@item.FileName

@item.FileName

}

}

@item.ModifyDt

编辑

删除@{if (@item.FileMd5 != "")

{

下载}

}

}

jquery

//创建文件夹

$('#btnNewFolder').click(function () {//设置弹出框标题

var title = $('#alertTitlte').html();

$('#alertTitlte').html('新建文件夹');//清空弹出框内容

$(".modal-body").html('');

$(".modal-body").html('');

$('#txtFileName').val('');

$('#modal-edit').modal('show');

$('#txtFileName').val('新建文件夹');

$('#lnkSave').unbind('click');

$('#lnkSave').bind('click', function () {

$.post('CreateFolder', { folderName: $('#txtFileName').val(), folderPath: $('#hdFilePath').val() }, function (data) {

data=JSON.parse(data);var folder =data.folder;if (data.code == 200) {

$('

' + folder.FileName + '' + CurentTime() + ' 编辑   删除 ').insertBefore($('#fileList tbody'));

};//还原弹出框标题

$('#alertTitlte').html(title);

});

});

});

测试

b4eaeed6726e1113b2faa72895568739.png

fff93b5051c35ed785a3736bb186cb3a.png

总结

本篇文章简单实现了新建文件夹的过程。下篇文章将实现进入文件夹的过程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值