public ActionResult MoveFileToFtp(string id) { myFileMetadata md = FileVerification(id, StoragePath, true); if (md.FileInfo is null) { _logger.LogError("Не удалось получить информацию по файлу: {0}", Path.Combine(UploadsPath, id)); return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Ошибка обработки запроса", Status = StylesMessageEnum.warning.ToString() })); } DbContext.FilesStorage.Remove(md.Object); DbContext.SaveChanges(); string file_name = PickFileName(md.Object.Name, UploadsPath); md.FileInfo.MoveTo(Path.Combine(UploadsPath, file_name)); if (!(md.ThumbFileInfo is null)) { md.ThumbFileInfo.MoveTo(Path.Combine(UploadsThumbsPath, file_name)); } return(new ObjectResult(new ServerActionResult() { Success = true, Info = "Файл выгружен в общую папку: " + file_name, Status = StylesMessageEnum.success.ToString(), Tag = file_name })); }
public ActionResult SrcStorage(bool thumb, string id) { myFileMetadata md = FileVerification(id, StoragePath); if (md.FileInfo is null) { _logger.LogError("Ошибка во время получения потока файла FTP папки: {0}", Path.Combine(id, UploadsPath)); return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Ошибка обработки запроса", Status = StylesMessageEnum.warning.ToString() })); } string file_type = MimeTypeMap.GetMimeType(md.FileInfo.Extension); if (glob_tools.IsImageFile(id) && thumb) { string thumb_path = Path.Combine(StorageThumbsPath, id); return(PhysicalFile(thumb_path, file_type, id)); } return(PhysicalFile(md.FileInfo.FullName, file_type, id)); }
public ActionResult InfoStorage(string id) { myFileMetadata md = FileVerification(id, StoragePath, true); if (md.FileInfo is null) { _logger.LogError("Не удалось получить информацию по файлу: {0}", Path.Combine(UploadsPath, id)); return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Ошибка обработки запроса", Status = StylesMessageEnum.warning.ToString() })); } id = id.Substring(0, id.Length - md.FileInfo.Extension.Length); int idObject = int.Parse(id); FileStorageObjectModel fileStorage = DbContext.FilesStorage.Find(idObject); return(new ObjectResult(new ServerActionResult() { Success = true, Info = "Доступ к начальной папке успешно обработан", Status = StylesMessageEnum.success.ToString(), Tag = new { Id = fileStorage.Id.ToString() + md.FileInfo.Extension, fileStorage.Name, Size = glob_tools.SizeDataAsString(fileStorage.Length), fileStorage.isDisabled, fileStorage.isReadonly } })); }
public ActionResult InfoFtp(string id) { myFileMetadata md = FileVerification(id, UploadsPath); if (md.FileInfo is null) { _logger.LogError("Не удалось получить информацию по файлу: {0}", Path.Combine(UploadsPath, id)); return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Ошибка обработки запроса", Status = StylesMessageEnum.warning.ToString() })); } string CreationTime = md.FileInfo.CreationTime.ToString(glob_tools.DateTimeFormat); return(new ObjectResult(new ServerActionResult() { Success = true, Info = "Доступ к начальной папке успешно обработан", Status = StylesMessageEnum.success.ToString(), Tag = new { id = md.FileInfo.Name, md.FileInfo.Name, Size = glob_tools.SizeDataAsString(md.FileInfo.Length), CreationTime } })); }
public ActionResult DeleteStorage(string id) { //string id = ControllerContext.RouteData.Values["id"].ToString(); myFileMetadata md = FileVerification(id, StoragePath, true); if (md.FileInfo is null) { if (!(md.Object is null)) { DbContext.FilesStorage.Remove(md.Object); DbContext.SaveChangesAsync(); } _logger.LogError("Не удалось прочитать файл: {0}", Path.Combine(StoragePath, id)); return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Ошибка чтения файла: " + id, Status = StylesMessageEnum.warning.ToString() })); } DbContext.FilesStorage.Remove(md.Object); DbContext.SaveChangesAsync(); try { md.FileInfo.Delete(); if (!(md.ThumbFileInfo is null)) { md.ThumbFileInfo.Delete(); } } catch (Exception ex) { _logger.LogError(ex, "Не удалось удалить файл(ы): {0}", Path.Combine(StoragePath, id)); return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Во время удаления файла произошла ошибка: " + ex.Message, Status = StylesMessageEnum.warning.ToString() })); } _logger.LogWarning("Файл удалён: {0}", md.FileInfo.FullName); return(new ObjectResult(new ServerActionResult() { Success = true, Info = "Файл удалён", Status = StylesMessageEnum.success.ToString(), Tag = md.FileInfo.Name })); }
public ActionResult MoveFileToStorage(string id) { myFileMetadata md = FileVerification(id, UploadsPath); if (md.FileInfo is null) { _logger.LogError("Не удалось получить информацию по файлу: {0}", Path.Combine(UploadsPath, id)); return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Ошибка обработки запроса", Status = StylesMessageEnum.warning.ToString() })); } FileStorageObjectModel storedFile = UploadFile(md.FileInfo.FullName, md.FileInfo.Name); if (storedFile is null) { _logger.LogError("Не удалось получить информацию по файлу: {0}", md.FileInfo.FullName); return(new ObjectResult(new ServerActionResult() { Success = false, Info = "Ошибка обработки запроса", Status = StylesMessageEnum.warning.ToString() })); } return(new ObjectResult(new ServerActionResult() { Success = true, Info = "Файл сохранён", Status = StylesMessageEnum.success.ToString(), Tag = new { storedFile, storedFile.Name, Size = glob_tools.SizeDataAsString(storedFile.Length) } })); }
private myFileMetadata FileVerification(string id, string path, bool reconciliationDatabase = false) { if (string.IsNullOrWhiteSpace(id) || string.IsNullOrWhiteSpace(path)) { return(null); } string fileExtension = string.Empty; myFileMetadata fileMetadata = new myFileMetadata(); try { fileMetadata.FileInfo = new FileInfo(Path.Combine(path, id)); fileExtension = fileMetadata.FileInfo.Extension; } catch (Exception ex) { _logger.LogError(ex, "Ошибка доступа к файлу: {0}", Path.Combine(path, id)); return(fileMetadata); } if (!fileMetadata.FileInfo.Exists || id.Length <= fileExtension.Length) { fileMetadata.FileInfo = null; } else { if (glob_tools.IsImageFile(id) && path != UploadsThumbsPath && path != StorageThumbsPath) { try { fileMetadata.ThumbFileInfo = new FileInfo(Path.Combine(path, thumbSubFolderName, id)); if (!fileMetadata.ThumbFileInfo.Exists) { using (Stream myImageStream = UpdateImage(Image.FromFile(fileMetadata.FileInfo.FullName))) { using (FileStream fileStream = System.IO.File.Create(fileMetadata.ThumbFileInfo.FullName)) { myImageStream.Seek(0, SeekOrigin.Begin); myImageStream.CopyTo(fileStream); fileStream.Flush(); fileStream.Close(); fileStream.Dispose(); } myImageStream.Flush(); myImageStream.Close(); myImageStream.Dispose(); } } } catch (Exception ex) { _logger.LogError(ex, "Ошибка формирования превьюшки"); return(fileMetadata); } } } if (reconciliationDatabase) { id = id.Substring(0, id.Length - fileExtension.Length); if (!Regex.IsMatch(id, @"^\d+$")) { _logger.LogError("в запросе указан не корректный ключ файла: {0}", id); return(fileMetadata); } int objId = int.Parse(id); if (objId < 1) { _logger.LogError("в запросе указан не корректный ключ файла: {0}", objId); return(fileMetadata); } fileMetadata.Object = DbContext.FilesStorage.Find(objId); if (fileMetadata.Object is null) { _logger.LogError("файл не найден по ключу в базе данных: {0}", objId); } } return(fileMetadata); }