public static Manage.Enums.MimeType MyFilesMimeType(string MineTypeNum) { Manage.Enums.MimeType rv = Enums.MimeType.Unknown; switch (MineTypeNum) { case "any": rv = Manage.Enums.MimeType.Unknown; break; case "documents": rv = Manage.Enums.MimeType.Document; break; case "images": rv = Manage.Enums.MimeType.Image; break; case "videos": rv = Manage.Enums.MimeType.Video; break; case "audios": rv = Manage.Enums.MimeType.Audio; break; case "zip": rv = Manage.Enums.MimeType.Zip; break; } return(rv); }
public static string MyFilesMimeType(Manage.Enums.MimeType mimeType) { string rv = null; switch (mimeType) { case Manage.Enums.MimeType.Audio: rv = "Audio"; break; case Manage.Enums.MimeType.Document: rv = "Document"; break; case Manage.Enums.MimeType.Image: rv = "Audio"; break; case Manage.Enums.MimeType.Unknown: rv = "Unknown"; break; case Manage.Enums.MimeType.Video: rv = "Video"; break; case Manage.Enums.MimeType.Zip: rv = "Zip"; break; } return(rv); }
public IHttpActionResult UploadFile() { string userId = HttpContext.Current.User.Identity.Name; //Header에 포함되어 있는 정보 using (var db = new WebDiskDBEntities()) { if (HttpContext.Current.Request.Files.Count > 0) //파일개수가 0이상이면 { HttpFileCollection files = HttpContext.Current.Request.Files; #region 일 등록하기 for (int i = 0; i < files.Count; i++) { var newFile = new FileManage(); HttpPostedFile file = files[i]; if (file.ContentLength > 0)//업로드한 파일의 크기를 가져옴 { string folderId = HttpContext.Current.Request.Form["folderId"]; var parentFolder = db.FolderManage.Where(x => x.FolderId == folderId).SingleOrDefault(); string fileName = Path.GetFileName(file.FileName); string serverPath = @"C:\WebDisk"; string realPath = parentFolder.RealPath; string fullPath = Path.Combine(serverPath, userId, realPath); if (!Directory.Exists(fullPath)) { Directory.CreateDirectory(fullPath); } file.SaveAs(Path.Combine(fullPath, fileName)); newFile.FileId = GenerateUniqueID.FileID();//고유 파일 아이디 생성 newFile.FolderId = folderId; newFile.CreatedDate = DateTime.Now; newFile.LastModified = DateTime.Now; newFile.LastAccessed = DateTime.Now; newFile.Type = Enum.GetName(typeof(Manage.Enums.ContentType), Manage.Enums.ContentType.File).ToLower(); newFile.Starred = false; newFile.Trashed = false; newFile.OwnerId = userId; newFile.FileName = Path.GetFileNameWithoutExtension(file.FileName); newFile.FileExtension = Path.GetExtension(file.FileName).TrimStart('.'); //확장자 앞에 있는 '.'제거 newFile.FileSize = (file.ContentLength / 1024); //kb단위로 저장 newFile.RealPath = realPath; newFile.ServerPath = serverPath; #region 업로드된 파일의 마임 타입을 지정한다. Manage.Enums.MimeType isMimeType = Manage.Enums.MimeType.Unknown; switch (newFile.FileExtension.ToLower()) { case "jpg": case "jpeg": case "png": case "gif": case "bmp": isMimeType = Manage.Enums.MimeType.Image; break; case "doc": case "docx": case "xls": case "xlsx": case "pdf": isMimeType = Manage.Enums.MimeType.Document; break; } newFile.MimeType = (byte)isMimeType; #endregion db.FileManage.Add(newFile); db.SaveChanges(); #region 업로드된 파일의 썸네일 생성하기 string rv_FilePreview = Manage.Utils.CreatePreview.CheckFileMap(Path.Combine(fullPath, fileName), newFile.FileId); if (rv_FilePreview.Contains("오류")) { throw new Exception(rv_FilePreview + " << 오류발생했다!!!!"); //1: 원래 생겨야하는 썸네일 등의 이미지를 '파일 썸네일 생성 오류안내' 이미지로 대체한다. //2: 여기에 후속 대체 기능을 추가해야 한다. } else { } #endregion } } #endregion } } return(Ok()); }