Пример #1
0
        public async Task <IActionResult> Download(string file, BusinessParam bp, bool thumbnail)
        {
            var methodName = $".{new StackTrace().GetFrame(1).GetMethod().Name}";

            try
            {
                var lastPoint   = file.LastIndexOf(".", StringComparison.Ordinal);
                var link        = file.Substring(0, lastPoint);
                var jsonFileDto = GetJsonDto(Encryption.Decryption(FileRepositoryFacade.ReplaceValidCharacter(link)));
                var fileDto     = GetFileFromDataBaseWithId(jsonFileDto.EntityId, null);
                var path        = bp.Environment.WebRootPath + fileDto.Path;
                if (thumbnail)
                {
                    var lastIndexOf = path.LastIndexOf(".", StringComparison.Ordinal);
                    var substring   = path.Substring(0, lastIndexOf);
                    substring += "_thumb" + path.Substring(lastIndexOf);
                    path       = substring;
                }

                var stream = new FileStream(path, FileMode.Open);
                return(new FileStreamResult(stream, FileRepositoryFacade.MimType[fileDto.Extension])
                {
                    FileDownloadName = fileDto.Name + "." + fileDto.Extension
                });
            }
            catch (Exception e)
            {
                ExceptionUtil.ExceptionHandler(e, ClassDetails[0].Facade + methodName, null);
                return(null);
            }
        }
Пример #2
0
        private string GetPathOfFile(JsonFileDto dto, BusinessParam bp)
        {
            var methodName = $".{new StackTrace().GetFrame(1).GetMethod().Name}";

            try
            {
                return
                    ($"/service/file/download/{FileRepositoryFacade.ReplaceInValidCharacter(Encryption.Encrypt(GetJsonData(dto)))}.{dto.Extension}");
            }
            catch (Exception ex)
            {
                ExceptionUtil.ExceptionHandler(ex, ClassDetails[0].Facade + methodName, bp.UserInfo);
                return("");
            }
        }