public async Task <IActionResult> Get(int idFile) { ObjectResult checkResult = GetCheckParams(StatusCode, idFile); if (checkResult != default) { return(checkResult); } RegistrarFileData registrarFileData = default; try { registrarFileData = await _ServiceRegistrar.GetRegistrarFileAsync(HelperASP.Login(User), idFile, CancellationToken.None); } catch (Exception exception) { _Logger.LogError( exception, "Ошибка получения файла. ID файла: {idFile}. Пользователь: {login}, ошибка: {exceptionMessage}", idFile, HelperASP.Login(User), exception.Message); return(StatusCode(StatusCodes.Status500InternalServerError, exception.Message)); } byte[] mas = registrarFileData.Data; string fileType; string fileName = registrarFileData.FileName; switch (Path.GetExtension(registrarFileData.FileName)?.ToUpper()) { case ".PDF": fileType = "application/pdf"; break; case ".JPEG": case ".JPG": fileType = "image/jpeg"; break; case ".GIF": fileType = "image/gif"; break; case ".PNG": fileType = "image/png"; break; case ".TIF": fileType = "image/tiff"; break; default: fileType = "application/pdf"; break; } return(File(mas, fileType, fileName)); }
/// <summary> /// Скачать файл из хранилища. /// </summary> /// <param name="idFile">ID файла</param> /// <returns></returns> public async Task <FileResult> DownloadFile(int idFile) { if (idFile != default) { RegistrarFileData registrarFileData = new RegistrarFileData(); try { registrarFileData = await _ServiceRegistrar.GetRegistrarFileAsync(User.Identity.Name, idFile, CancellationToken.None); } catch (Exception exception) { _Logger.LogError( exception, "Не удалось получить файл с сервера. Пользователь: {login}, idFile: {idFile}, ошибка: {exceptionMessage}", HelperASP.Login(User), idFile, exception.Message); } byte[] mas = registrarFileData.Data; string fileType; string fileName = registrarFileData.FileName; switch (Path.GetExtension(registrarFileData.FileName)?.ToUpper()) { case ".PDF": fileType = "application/pdf"; break; case ".JPEG": case ".JPG": fileType = "image/jpeg"; break; case ".GIF": fileType = "image/gif"; break; case ".PNG": fileType = "image/png"; break; case ".TIF": fileType = "image/tiff"; break; default: fileType = "application/pdf"; break; } return(File(mas, fileType, fileName)); } return(null); }