mvc5 ef mysql_[实战]MVC5+EF6+MySql企业网盘实战(7)——文件上传

[HttpPost]public void UploadFile(stringfilePath)

{

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

{

RedirectToAction("Login", "UserInfo");

}var files =Request.Files;if (files.Count > 0)

{var file = files[0];string fileName =file.FileName;

Stream inputStream=file.InputStream;string fileSaveFolder = Request.MapPath("~/NetDisk/" +userInfo.UserName);if (!string.IsNullOrEmpty(filePath))

{

fileSaveFolder=Path.Combine(fileSaveFolder, filePath);

}//如果目标不存在,则创建

if (!Directory.Exists(fileSaveFolder))

{

Directory.CreateDirectory(fileSaveFolder);

}byte[] buffer = new byte[inputStream.Length];

inputStream.Read(buffer,0, buffer.Length);string strFileMd5 =MD5Helper.GetMD5FromFile(buffer);string fileSavePath =Path.Combine(fileSaveFolder, filePath);

fileSavePath=Path.Combine(fileSaveFolder, fileName);//如果文件已经存在

if(System.IO.File.Exists(fileSavePath))

{//对文件进行重命名

fileName =ReNameHelper.FileReName(fileSavePath);

fileSavePath=Path.Combine(fileSaveFolder, fileName);

}

file.SaveAs(fileSavePath);var currentUser = _userInfoServiceRepository.Find(x => x.Id ==userInfo.Id);

MyFile myFile= newMyFile()

{

FileMd5=strFileMd5,

ModifyDt=DateTime.Now,

IsDelete= false,

FileSize=buffer.Length,

FilePath= "/NetDisk/" + userInfo.UserName + "/" +fileName,

FileExt=Path.GetExtension(fileSavePath),

CreateDt=DateTime.Now,

FileName=fileName,

FileIcon=GetFileIcon(Path.GetExtension(fileSavePath)),

User=currentUser

};//保存数据库

_myFileServiceRepository.Add(myFile);

_myFileServiceRepository.SaveChanges();string json = newJavaScriptSerializer().Serialize(myFile);

AlertMsg("上传成功", json);

}

}private void AlertMsg(string msg, stringfileJson)

{

Response.ContentType= "text/html";

Response.Write("");

}private string GetFileIcon(stringfileExt)

{string fileIconPath = "/Content/Images/";switch(fileExt.ToLower())

{case ".doc":case ".docx":

fileIconPath+= "DocType.png";break;case ".xlx":case ".xlxs":

fileIconPath+= "XlsType.png";break;case ".ppt":case ".pptx":

fileIconPath+= "PptType.png";break;case ".pdf":

fileIconPath+= "PdfType.png";break;case ".apk":

fileIconPath+= "ApkType.png";break;case ".dwt":case ".dwg":case ".dws":case ".dxf":

fileIconPath+= "CADType.png";break;case ".exe":

fileIconPath+= "ExeType.png";break;case ".png":case ".gif":case ".jpg":

fileIconPath+= "ImgType.png";break;case ".txt":

fileIconPath+= "TxtType.png";break;case ".bt":

fileIconPath+= "TorrentType.png";break;case ".rmvb":case ".avi":case ".flv":

fileIconPath+= "VideoType.png";break;case ".zip":case ".7z":case ".rar":

fileIconPath+= "MusicType.png";break;case ".mp3":

fileIconPath+= "MusicType.png";break;default:

fileIconPath+= "OtherType.png";break;

}returnfileIconPath;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值