Позвонить в API от angular с (данные + файл изображения вместе) ASP. NET CORE - PullRequest
0 голосов
/ 15 февраля 2020
[HttpPost]
        public async Task<ActionResult<Employee>> PostEmployee()
        {
            IFormFile file = HttpContext.Request.Form.Files["photo"];
            string uploadFolder = Path.Combine(environment.ContentRootPath, "images");
            string uniqueFileName = Guid.NewGuid().ToString() + "_" + file.FileName;
            string filePath = uploadFolder + uniqueFileName;

            var employee = new Employee
            {
                Name = HttpContext.Request.Form["name"],
                DepartmentId = Convert.ToInt32((HttpContext.Request.Form["department"])),
                Email = HttpContext.Request.Form["email"],
                PhoneNumber = HttpContext.Request.Form["phoneNumber"],
                Gender = (Gender)(Convert.ToInt32(HttpContext.Request.Form["gender"])),
                ContactPreference = (ContactPreference)(Convert.ToInt32(HttpContext.Request.Form["contactPreference"])),
            // Date of birth is not working cant convert from the httpcontext     
DateOfBirth = Convert.ToDateTime(HttpContext.Request.Form["dateOfBirth"]),
                IsActive =Convert.ToBoolean( HttpContext.Request.Form["isActive"]),

            };
            if (file != null)
            {
                employee.PhotoPath = uniqueFileName;
            }

            try
            {
                _context.Employees.Add(employee);
               var x = await _context.SaveChangesAsync();
                if (x > 0)
                {
                    using (var fileStream = new FileStream(filePath, FileMode.Create))
                    { 
                        await file.CopyToAsync(fileStream);
                    }
                }
            }
            catch (Exception)
            {

                throw;
            }             

            return Ok(employee);
            //CreatedAtAction("GetEmployee", new { id = employee.Id }, employee);
        }

Я пытаюсь создать вызов post api. До сих пор я делал вышеописанное, но я не убежден в том, что я использовал здесь try catch, могу ли я использовать оператор using лучше, чем использовать попробуйте поймать ... есть ли другой способ получить данные с изображения из внешнего интерфейса. Пожалуйста, не обращайте внимания на мои ошибки новичка

...