public int Create(RegisterFileDTO FileDto) { try { var file = new File(); if (FileDto == null) { return(0); } file.Name = FileDto.Name; file.Type = FileDto.Type; file.PublishDate = DateTime.Now; file.IsDelete = false; file.Size = Convert.ToDouble(FileDto.Size); file.Description = FileDto.Description; file.UserId = FileDto.UserId; _fileRepository.Add(file); return(file.Id); } catch (RepositoryException re) { throw new ServiceException("Repository ex: " + re.Message); } catch (Exception ex) { throw new ServiceException(ex.Message); } }
// POST api/<controller> public async Task <IHttpActionResult> Post() { if (!Request.Content.IsMimeMultipartContent()) { return(Ok("Файлы не загружены")); } var provider = new MultipartMemoryStreamProvider(); // путь к папке на сервере string root = System.Web.HttpContext.Current.Server.MapPath("~/uploadedFiles/"); await Request.Content.ReadAsMultipartAsync(provider); var fileLength = 0; var filename = ""; foreach (var file in provider.Contents) { filename = file.Headers.ContentDisposition.FileName.Trim('\"'); //var buffer = await file.ReadAsByteArrayAsync(); byte[] fileArray = await file.ReadAsByteArrayAsync(); fileLength = fileArray.Length; using (System.IO.FileStream fs = new System.IO.FileStream(root + filename, System.IO.FileMode.Create)) { await fs.WriteAsync(fileArray, 0, fileArray.Length); } } var fileDto = new RegisterFileDTO { Name = filename, UserId = CurrentUserId, Description = "Description", Size = fileLength, Type = "jpg" }; _fileService.Create(fileDto); return(Ok("файлы загружены")); }