Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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());
        }