Esempio n. 1
0
        public async Task <ActionResult> VideoPost(CreateLearnOnlineResource NewFile) // 新增線上自學資料
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { message = "資料填寫錯誤" }));
            }
            if (NewFile.Video.Length > 0)
            {
                // 呼叫至Services 進行寫入資料庫
                var InsertResult = await _LearnOnlineService.LearningOnlineVideoUpload(NewFile);

                if (InsertResult.Equals("新增成功"))
                {
                    return(Ok(new { message = "上傳成功" }));
                }
                else if (InsertResult.Equals("資料庫寫入錯誤"))
                {
                    return(BadRequest(new { message = "寫入資料庫失敗" }));
                }
            }
            return(BadRequest(new { message = "無上傳檔案" }));
        }
Esempio n. 2
0
        public async Task <string> LearningOnlineVideoUpload(CreateLearnOnlineResource NewFile) // 新增線上自學資料至資料庫
        {
            string InsertResult = string.Empty;

            #region 取得上傳影片內容

            // 取得影片無路徑檔名
            string FileName = Path.GetFileNameWithoutExtension(NewFile.Video.FileName);
            // 取得附檔名
            string FileExt = Path.GetExtension(NewFile.Video.FileName);
            // 儲存在server上的檔名
            string PathfileName = NewFile.Coursel_TypeId + NewFile.Coursel_Name + "_" + FileName + FileExt;
            string FilePath     = _folder;
            #endregion

            #region 儲存至 Server

            // 如果沒有此路徑,則建立
            if (!Directory.Exists(FilePath))
            {
                Directory.CreateDirectory(FilePath);
            }
            using (var stream = new FileStream(Path.Combine(FilePath, PathfileName), FileMode.Create))
            {
                await NewFile.Video.CopyToAsync(stream);
            }
            #endregion

            #region 將檔案內容填至 Model

            // 宣告Model模型
            LearnOnlineModel NewData = new LearnOnlineModel();
            // ====將資料填入Model中
            NewData.Coursel_TypeId = NewFile.Coursel_TypeId;
            NewData.Coursel_Name   = NewFile.Coursel_Name;
            NewData.CreateTime     = DateTime.Now;
            NewData.Video_Size     = NewFile.Video.Length;
            NewData.Video_Type     = NewFile.Video.ContentType;
            NewData.Video_Time     = NewFile.Video_Time;
            NewData.Video_Url      = Path.Combine(FilePath, PathfileName);
            // ====
            #endregion

            #region 寫入資料庫處理

            try
            {
                // 使用AutoMapper 比對寫入資料庫的資料
                var InsertMapperFile = _mapper.Map <LearnOnlineModel>(NewData);
                // 寫入資料庫
                _context.LearningOnline.Add(InsertMapperFile);
                // 儲存資料庫變更
                await _context.SaveChangesAsync();
            }
            catch (ArgumentException)
            {
                return("資料庫寫入錯誤");
            }
            return("新增成功");

            #endregion
        }