Example #1
0
        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));
        }
Example #2
0
        /// <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);
        }