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 = "無上傳檔案" })); }
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 }