上传到FTP Server Controller
[HttpPost] public ActionResult Upload(HttpPostedFileBase[] files) { //廠別,部門,單號,單據類型,文件名,保存文件名,Seq,上傳人員,上傳時間 Enabled //1.保存文件,2.保存文件信息到數據庫表EMS_MT_EvidFile mtEvidFileBLL FtpWeb ftp = new FtpWeb(); var fi = files; string mtNO = Request["MTNO"].ToString(); int deptID = Convert.ToInt32( Request["DeptID"]); string docType = "MT"; //獲取周 string strWeek = System.Globalization.CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(DateTime.Now, System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday).ToString(); string strProName = "EMS_MT_EVIDFILE"; string fileExtenName = string.Empty; string fileName=string.Empty; var filePath = "/EMS" + "/" + "UploadDoc" + "/" + strProName + "/" + PlantID + "/" + DateTime.Now.ToString("yyyy") + strWeek.PadLeft(2, '0') + "/"; #region 創建文件路徑 ftp.MakeDirByUrlPath(filePath); #endregion if (fi != null) { try { var virtualPath = string.Empty; //最大seq int maxSeq = mtEvidFileBLL.GetMaxSeqByMTNO(string.Format(" PlantID = '{0}' and MTNO = '{1}' and DocType = '{2}' " ,PlantID,mtNO,docType)); List<Lib.Model.EMS.Spart.MTEvidFile> fileModeles = new List<Lib.Model.EMS.Spart.MTEvidFile>(); foreach (var file in fi) { maxSeq++; int seq = maxSeq; if (seq > 5) { throw new Exception(string.Format("上傳失敗,已上傳{0}個檔案,最多只能上傳5個檔案!",seq-1)); } fileExtenName = System.IO.Path.GetExtension(file.FileName); fileName = string.Format("{0}_{1}{2}",mtNO, seq , fileExtenName); virtualPath = filePath + fileName; Lib.Model.EMS.Spart.MTEvidFile mtFileModel = new Lib.Model.EMS.Spart.MTEvidFile() { MTEvidFileGUID = ResultHelper.NewGuid, DeptID = (int)deptID, DOCType = docType, EmpID=LoginUserID, Enabled = "Y", EvidFileSeq = seq , MTNO = mtNO, OperatorRemark = "", PlantID = PlantID, UpdateTime = ResultHelper.NowTime, ShowFIleName= fileName , SaveFileName= virtualPath }; fileModeles.Add(mtFileModel); #region 備份 //如已有備份則刪除 string bkFile = $"{filePath}BK_{fileName}"; if (ftp.FileExist(filePath, $"BK_{fileName}")) { ftp.Delete(bkFile); } if (ftp.FileExist(filePath,fileName)) { //上一個版本移動到備份 ftp.MovieFile(filePath, fileName, $"BK_{fileName}"); } #endregion // 保存文件 ftp.Upload(file, filePath, fileName); } // mtEvidFileBLL.Save(fileModeles); return Json(new { Success = true, Filepath = virtualPath, Message = "上傳成功!" }); } catch (Exception ex) { return Json(new { Success = false, Message = ex.Message }); } } else { return Json(new { Success = false, Message = "沒有要上傳的文件!!" }); } }