예제 #1
0
        public async Task <Box.CMS.Models.File[]> Post(List <IFormFile> files, [FromRoute] string folder, [FromQuery] int storage = 0)
        {
            List <Box.CMS.Models.File> boxFiles = new List <Box.CMS.Models.File>();

            foreach (var formFile in files)
            {
                if (formFile.Length > 0)
                {
                    byte[] bytes;
                    using (var memoryStream = new System.IO.MemoryStream()) {
                        await formFile.CopyToAsync(memoryStream);

                        bytes = memoryStream.ToArray();
                    }

                    Box.CMS.Models.File boxFile = new Box.CMS.Models.File();
                    boxFile.FileUId  = Guid.NewGuid().ToString();
                    boxFile.FileName = _cmsService.CleanFileName(formFile.FileName);
                    boxFile.Type     = formFile.ContentType;
                    boxFile.Folder   = (folder == null ? "Images" : folder);
                    boxFile.Size     = bytes.Length;
                    boxFile.Data     = new FileData()
                    {
                        FileUId = boxFile.FileUId, StoredData = bytes
                    };

                    _cmsService.SetFileThumb(boxFile);

                    _cmsService.SaveFile(boxFile, (FileStorages)storage);

                    boxFile.Data = null;
                    boxFiles.Add(boxFile);
                }
            }

            return(boxFiles.ToArray());
        }