Open Closed

FileManager module /file-management/directory-descriptor retured data error #4923


User avatar
0
xiexingen created
  • ABP Framework version: v7.1.0
  • Scenes

my thoughts

  • record token to cache as whitelist when user login generate token(at the same time remove this user other token)
  • while user request server vertify token check token are in cache when request .
Markdown supported.
Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)

3 Answer(s)
  • User Avatar
    0
    liangshiwei created
    Fullstack Developer

    Hi,

    We will fix the problem and your ticket refunded.

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    liangshiwei created
    Fullstack Developer

    You can try

    
    CreateMap<DirectoryDescriptor, DirectoryContentDto>()
                .ForMember(dest => dest.IsDirectory,
                    opt => opt.MapFrom(src => true))
                .ForMember(dest => dest.Size,
                    opt => opt.MapFrom(src => 0))
                .ForMember(dest => dest.IconInfo,
                    opt => opt.Ignore())
                .MapExtraProperties();
    
            CreateMap<FileDescriptor, DirectoryContentDto>()
                .ForMember(dest => dest.IsDirectory,
                    opt => opt.MapFrom(src => false))
                .ForMember(dest => dest.IconInfo,
                    opt => opt.Ignore())
                .MapExtraProperties();
    
    [ExposeServices(typeof(IDirectoryDescriptorAppService))]
    public class MyDirectoryDescriptorAppService : DirectoryDescriptorAppService
    {
        public MyDirectoryDescriptorAppService(IDirectoryManager directoryManager, IFileManager fileManager, IDirectoryDescriptorRepository directoryDescriptorRepository, IFileDescriptorRepository fileDescriptorRepository, IOptions<FileIconOption> fileIconOption) : base(directoryManager, fileManager, directoryDescriptorRepository, fileDescriptorRepository, fileIconOption)
        {
        }
    
        public override async Task<PagedResultDto<DirectoryContentDto>> GetContentAsync(DirectoryContentRequestInput input)
        {
            var result = new List<DirectoryContentDto>();
            var subDirectoryCount = await DirectoryDescriptorRepository.GetChildrenCountAsync(input.Id, input.Filter);
            var subFileCount = await FileDescriptorRepository.CountDirectoryFilesAsync(input.Id, input.Filter);
    
            // directory can be orderable for only its name
            var directorySorting =
                input.Sorting?.IndexOf("name asc", StringComparison.OrdinalIgnoreCase) >= 0 ?
                    "name asc" :
                    input.Sorting?.IndexOf("name desc", StringComparison.OrdinalIgnoreCase) >= 0 ?
                        "name desc" :
                        null;
    
            var subDirectories = await DirectoryDescriptorRepository.GetChildrenAsync(input.Id, input.Filter, directorySorting, input.MaxResultCount, input.SkipCount);
            result.AddRange(ObjectMapper.Map<List<DirectoryDescriptor>, List<DirectoryContentDto>>(subDirectories));
    
            if (await AuthorizationService.IsGrantedAsync(FileManagementPermissions.FileDescriptor.Default))
            {
                var fileSkipCount = input.SkipCount <= subDirectoryCount ? 0 : input.SkipCount - subDirectoryCount;
                var fileMaxResultCount = input.MaxResultCount - subDirectories.Count;
    
                var subFiles = await FileDescriptorRepository.GetListAsync(input.Id, input.Filter, input.Sorting, fileMaxResultCount, fileSkipCount);
                var subFilesDto = ObjectMapper.Map<List<FileDescriptor>, List<DirectoryContentDto>>(subFiles);
                foreach (var fileDto in subFilesDto)
                {
                    fileDto.IconInfo = FileIconOption.GetFileIconInfo(fileDto.Name);
                    
                    result.Add(fileDto);
                }
            }
    
            return new PagedResultDto<DirectoryContentDto>(subDirectoryCount + subFileCount, result);
        }
    }
    
    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    xiexingen created

    thanks

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.8.0-preview. Updated on September 16, 2026, 14:50
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.