[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;
}