コード例 #1
0
        public IActionResult CreateFile([FromForm] InsertFileRequest request)
        {
            if (request.File == null)
            {
                return(BadRequest("Отсутствует файл в запросе"));
            }

            var folder = _folderRepo.FirstOrDefault(f => f.Id == request.FolderId);

            if (folder == null)
            {
                return(BadRequest("Указанная папка не существует"));
            }

            if (_fileRepo.Any(f => f.FileName == request.File.FileName && f.Folder.Id == request.FolderId))
            {
                return(BadRequest("В данной папке уже существует файл с таким именем"));
            }

            var newFile = new File
            {
                FileName = request.File.FileName,
                Folder   = folder,
                FilePath = DiskHelper.SaveToPC(request.File, _folderService.GetFullPath(request.FolderId))
            };

            _fileRepo.Add(newFile);
            _db.SaveChanges();

            return(CreatedAtAction(nameof(GetFile), routeValues: new { fileId = newFile.Id }, newFile.Id));
        }
コード例 #2
0
        private void TryAssembleFile(ResumableConfiguration configuration)
        {
            if (AllChunksAreHere(configuration))
            {
                // Create a single file
                var path      = ConsolidateFile(configuration);
                var extension = configuration.FileName.Split('.');
                var fileName  = Guid.NewGuid();
                // Rename consolidated with original name of upload
                RenameFile(path, Path.Combine(root, fileName.ToString() + (extension.Length > 1 ? "." + extension[extension.Length - 1] : "")));

                // Delete chunk files
                DeleteChunks(configuration);

                var request = new InsertFileRequest()
                {
                    CreatedDate = DateTime.Now,
                    IdUser      = int.Parse(User.GetUserId()),
                    Name        = configuration.FileName,
                    Size        = configuration.Size,
                    NomeInterno = fileName
                };

                JsonConvert.DeserializeObject <InsertFileResponse>
                    (ServiceApiUtil.ApiResponse("api/file/Insert", "POST", request));
            }
        }
コード例 #3
0
        public async Task <HttpResponseMessage> Insert(InsertFileRequest request)
        {
            try
            {
                var response = _serviceFile.InsertFile(request);

                return(await ResponseAsync(response, _serviceFile));
            }
            catch (Exception ex)
            {
                return(await ResponseExceptionAsync(ex));
            }
        }
コード例 #4
0
        public SessionCreationStatusResponse StartSession([FromRoute] long userId,
                                                          [FromForm] CreateSessionParams sessionParams)
        {
            InsertFileRequest request = new InsertFileRequest()
            {
                CreatedDate = DateTime.Now,
                IdUser      = 1,
                Name        = "Teste",
                Size        = 12213
            };
            var     response = _serviceFile.InsertFile(request);
            Session session  = uploadService.CreateSession(userId, sessionParams.FileName,
                                                           sessionParams.ChunkSize.Value,
                                                           sessionParams.TotalSize.Value);

            return(SessionCreationStatusResponse.fromSession(session));
        }
コード例 #5
0
ファイル: ServiceFile.cs プロジェクト: dusommer/projetoUpload
        public InsertFileResponse InsertFile(InsertFileRequest request)
        {
            File file = null;

            if (request == null)
            {
                AddNotification("InsertFileRequest", "Request is required.");
            }
            else
            {
                file = new File(request.Name, request.Size, request.IdUser, request.CreatedDate, request.NomeInterno);
                file = _repositoryFile.Insert(file);
            }

            AddNotifications(file);

            if (IsInvalid())
            {
                return(null);
            }

            return((InsertFileResponse)file);
        }