Esempio n. 1
0
        public async Task <FileDTO> UploadFile([FromForm] IFormFile file)
        {
            var errorDTO = new FileDTO
            {
                Id = -1
            };

            if (file == null)
            {
                return(errorDTO);
            }

            long size = file.Length;

            if (file.Length > 0)
            {
                var currentDate       = DateTime.Now.ToString("yyyy/MM/dd");
                var rootLocation      = _appConfiguration["App:FileLocation"];
                var storeFileLocation = rootLocation + currentDate;
                if (!Directory.Exists(storeFileLocation))
                {
                    Directory.CreateDirectory(storeFileLocation);
                }
                var fileEntity = new Bussiness.File.File();
                fileEntity.Size = size;
                fileEntity.Loai = Path.GetExtension(file.FileName);
                fileEntity.Ten  = file.FileName;
                if (string.IsNullOrEmpty(fileEntity.Loai) || !allowFileExtension.Contains(fileEntity.Loai.ToUpper()))
                {
                    return(new FileDTO
                    {
                        Id = 0
                    });
                }
                long milliseconds = DateTime.Now.Ticks;
                var  newName      = Path.GetFileNameWithoutExtension(file.FileName);
                newName = newName + "_" + AbpSession.UserId + "_" + milliseconds + Path.GetExtension(file.FileName);
                using (var stream = System.IO.File.Create(storeFileLocation + "\\" + newName))
                {
                    await file.CopyToAsync(stream);
                }

                fileEntity.Ten = newName;
                fileEntity.URL = _appConfiguration["App:RequestFileLocation"] + "/" + currentDate + "/" + fileEntity.Ten;
                var id = await _fileRepository.InsertAndGetIdAsync(fileEntity);

                var response = new FileDTO
                {
                    Id  = id,
                    Ten = fileEntity.Ten,
                    URL = fileEntity.URL
                };
                return(response);
            }
            return(errorDTO);
        }
Esempio n. 2
0
        public async Task <string> UploadFiles([FromForm] List <IFormFile> files)
        {
            var dsIds = new List <long>();

            foreach (var file in files)
            {
                if (file == null)
                {
                    continue;
                }
                long size = file.Length;
                if (file.Length > 0)
                {
                    var currentDate       = DateTime.Now.ToString("yyyy/MM/dd");
                    var rootLocation      = _appConfiguration["App:FileLocation"];
                    var storeFileLocation = rootLocation + currentDate;
                    if (!Directory.Exists(storeFileLocation))
                    {
                        Directory.CreateDirectory(storeFileLocation);
                    }
                    var fileEntity = new Bussiness.File.File();
                    fileEntity.Size = size;
                    fileEntity.Loai = Path.GetExtension(file.FileName);
                    fileEntity.Ten  = file.FileName;

                    if (string.IsNullOrEmpty(fileEntity.Loai) || !allowFileExtension.Contains(fileEntity.Loai.ToUpper()))
                    {
                        continue;
                    }

                    long milliseconds = DateTime.Now.Ticks;
                    var  newName      = Path.GetFileNameWithoutExtension(file.FileName);
                    newName = newName + "_" + AbpSession.UserId + "_" + milliseconds + Path.GetExtension(file.FileName);
                    using (var stream = System.IO.File.Create(storeFileLocation + "\\" + newName))
                    {
                        await file.CopyToAsync(stream);
                    }

                    fileEntity.Ten = newName;
                    fileEntity.URL = _appConfiguration["App:RequestFileLocation"] + "/" + currentDate + "/" + fileEntity.Ten;
                    var id = await _fileRepository.InsertAndGetIdAsync(fileEntity);

                    dsIds.Add(id);
                }
            }
            return(string.Join("`", dsIds));
        }