public void AdHoc_Test() { string StateCheck(bool p) => p ? "success" : "failed"; var ftpWorker = new FtpWorker("host", "username", "password"); var results = ftpWorker.DownloadFile( "remote directory location", "remote file name", "directory to save the file", "the name of the file", StateCheck, true, null, true); }
private async Task <List <FileInfo> > UploadFilesAsync(TargetFtpConfig targetFtp, List <FileInfo> files) { var result = new List <FileInfo>(); var worker = new FtpWorker(targetFtp); Container.Shared.Inject(worker); worker.Enqueue(files.ToArray()); var root = IRootHelper.GetRoot(); worker.FileWillUpload += (sender, a) => { lock (this) { IOutputConsole.ClearLine(); IOutputConsole.Write($"uploading {a.FilesLeft} {root.GetRealtive(a.File)}"); } }; worker.FileDidUpload += (sender, a) => { lock (result) { result.Add(a.File); } }; worker.FileError += (sender, a) => { lock (this) { IOutputConsole.ClearLine(); IOutputConsole.WriteLine($"error: {root.GetRealtive(a.File)}, [{a.Message}]"); } }; await worker.UploadAsync(); return(result); }
public async Task <IActionResult> Create(Slider slider, IFormFile ImageUpload) { if (ModelState.IsValid) { Slider tbl_Slider = new Slider(); tbl_Slider.Description = slider.Description; tbl_Slider.Link = slider.Link; tbl_Slider.SliderTitle = slider.SliderTitle; tbl_Slider.Sort = slider.Sort; if (slider.ServerUpload == true) { if (ImageUpload == null && ImageUpload.Length < 0) { return(Redirect(nameof(Create))); } Files files = new Files(); FtpWorker ftp = new FtpWorker(); string fileName = Guid.NewGuid().ToString().Replace("-", "") + ImageUpload.FileName.ToLower(); int FtpID = ftp.Upload("Content", fileName, ImageUpload.OpenReadStream()); if (FtpID != -1) { files.ServerId_FK = FtpID; files.FileName = fileName; files.Title = slider.SliderTitle; files.Alt = slider.SliderTitle; database.Tbl_Files.Add(files); await database.SaveChangesAsync(); } } else { string uploads = Path.Combine(hostingEnvironment.WebRootPath, "Files\\Images\\Slider"); if (ImageUpload == null && ImageUpload.Length == 0) { return(RedirectToAction(nameof(Create))); } string fileName = Guid.NewGuid().ToString().Replace("-", "") + ImageUpload.FileName.ToLower(); using (var fileStream = new FileStream(Path.Combine(uploads, fileName), FileMode.Create)) { await ImageUpload.CopyToAsync(fileStream); } int GetServerId = database.Tbl_Server.Where(c => c.Type == "Content").FirstOrDefault().ServerId; Files files = new Files(); files.ServerId_FK = GetServerId; files.FileName = fileName; files.Title = slider.SliderTitle; files.Alt = slider.SliderTitle; database.Tbl_Files.Add(files); await database.SaveChangesAsync(); } tbl_Slider.FileId_FK = database.Tbl_Files.OrderByDescending(c => c.FileId).FirstOrDefault().FileId; tbl_Slider.ServerUpload = slider.ServerUpload; database.Add(tbl_Slider); await database.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["FileId_FK"] = new SelectList(database.Tbl_Files, "FileId", "FileName", slider.FileId_FK); return(View(slider)); }
public async Task <IActionResult> Edit(int id, Slider slider, IFormFile ImageUpload) { if (id != slider.SliderId) { return(NotFound()); } var tbl_slider = database.Tbl_Slider.Where(c => c.SliderId == id).Include(c => c.Tbl_Files).ThenInclude(c => c.Tbl_Server).SingleOrDefault(); if (slider == null) { return(NotFound()); } if (ModelState.IsValid) { try { tbl_slider.Link = slider.Link; tbl_slider.SliderTitle = slider.SliderTitle; tbl_slider.Description = slider.Description; tbl_slider.Sort = slider.Sort; if (ImageUpload != null && !string.IsNullOrEmpty(ImageUpload.FileName) && ImageUpload.Length > 0) { if (slider.ServerUpload == true) { var img = database.Tbl_Files.Where(c => c.FileId == tbl_slider.FileId_FK).Include(c => c.Tbl_Server).SingleOrDefault(); if (img == null) { return(NotFound()); } FtpWorker ftp = new FtpWorker(); //-----------------Delete Image From Server && Local--------------------// //if (tbl_slider.ServerUpload == true) //{ // int FtpId = database.Tbl_Server.Where(c => c.Type == "Content").SingleOrDefault().ServerId; // var result = ftp.Remove(FtpId, tbl_slider.Tbl_Files.FileName); // if (result == false) // return RedirectToAction(nameof(Edit), new { id = tbl_slider.SliderId }); //} //else //{ // var getFileName = Path.Combine(hostingEnvironment.WebRootPath, "Files\\Images\\Slider\\" + tbl_slider.Tbl_Files.FileName); // if (System.IO.File.Exists(getFileName)) // { // System.IO.File.Delete(getFileName); // } //} //-------------------------------- ------------------------------// string fileName = Guid.NewGuid().ToString().Replace("-", "") + ImageUpload.FileName.ToLower(); int FtpID = ftp.Upload("Content", fileName, ImageUpload.OpenReadStream()); if (FtpID != -1) { img.ServerId_FK = FtpID; img.FileName = fileName; img.Title = slider.SliderTitle; img.Alt = slider.SliderTitle; database.Update(img); await database.SaveChangesAsync(); } } else { FtpWorker ftp = new FtpWorker(); var uploads = Path.Combine(hostingEnvironment.WebRootPath, "Files\\Images\\Slider"); //-----------------Delete Image From Server && Local--------------------// //if (slider.ServerUpload == true) // //{ // int FtpId = database.Tbl_Server.Where(c => c.Type == "Content").SingleOrDefault().ServerId; // var result = ftp.Remove(FtpId, tbl_slider.Tbl_Files.FileName); // if (result == false) // return RedirectToAction(nameof(Edit), new { id = tbl_slider.SliderId }); //} //else //{ // var getFileName = Path.Combine(hostingEnvironment.WebRootPath, "Files\\Images\\Slider\\" + tbl_slider.Tbl_Files.FileName); // if (System.IO.File.Exists(getFileName)) // { // System.IO.File.Delete(getFileName); // } //} //----------------------------------- -----------------------------------------// Files files = new Files(); if (ImageUpload != null && !string.IsNullOrEmpty(ImageUpload.FileName) && ImageUpload.Length > 0) { string fileName = Guid.NewGuid().ToString().Replace("-", "") + ImageUpload.FileName.ToLower(); using (var fileStream = new FileStream(Path.Combine(uploads, fileName), FileMode.Create)) { await ImageUpload.CopyToAsync(fileStream); } int GetServerId = database.Tbl_Server.Where(c => c.Type == "Content").FirstOrDefault().ServerId; files.ServerId_FK = GetServerId; files.FileName = fileName; files.Title = slider.SliderTitle; files.Alt = slider.SliderTitle; database.Tbl_Files.Add(files); tbl_slider.FileId_FK = files.FileId; await database.SaveChangesAsync(); } } } tbl_slider.ServerUpload = slider.ServerUpload; database.Update(tbl_slider); await database.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!SliderExists(slider.SliderId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["FileId_FK"] = new SelectList(database.Tbl_Files, "FileId", "FileName", slider.FileId_FK); return(View(slider)); }