示例#1
0
        private (bool error, string message, long uploadFileId) UploadFile(UploadFileDto.Request item, User user)
        {
            long uploadFileId  = 0;
            var  fileGuid      = Guid.NewGuid();
            var  fileExtension = Path.GetExtension(item.File.FileName);
            var  fileUri       = $"{item.Type.GetDirectoryName()}/{user.Guid.ToString("N")}";

            var filePath = $"{uploadFilePath}/{fileUri}";

            if (!Directory.Exists(filePath))
            {
                Directory.CreateDirectory(filePath);
            }

            try
            {
                using (var stream = new FileStream(Path.Combine(filePath, string.Concat(fileGuid, fileExtension)), FileMode.Create))
                {
                    item.File.CopyTo(stream);
                }

                fileUri = $"{fileUri}/{fileGuid}{fileExtension}";

                Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry <UploadFile> newEntity = _wordMeisterDbContext.UploadFiles.Add(new Model.UploadFile
                {
                    CreatedDate  = DateTime.Now,
                    Description  = item.Description,
                    Extension    = fileExtension,
                    Guid         = fileGuid,
                    OriginalName = item.File.FileName,
                    Status       = true,
                    Type         = (int)item.Type,
                    Uri          = fileUri,
                    UserId       = user.Id,
                });
                _wordMeisterDbContext.SaveChanges();

                uploadFileId = newEntity.Entity.Id;
            }
            catch (Exception ex)
            {
                return(new(true, ex.Message, uploadFileId));
            }

            return(new(false, string.Empty, uploadFileId));
        }
示例#2
0
 public IActionResult UploadFile([FromForm] UploadFileDto.Request model)
 {
     return(Ok(_userService.UploadFiles(new List <UploadFileDto.Request> {
         model
     }, User.GetUserId())));
 }