我在dotnet核心中创建了一个API,我想在mvc 5.2中使用它

时间:2019-03-14 05:14:54

标签: c# asp.net-web-api asp.net-core model-view-controller httpclient

在我正在使用的mvc项目中,我按了一个api来发布数据,但是在发布时却遇到了错误,因为api端的Model包含一个名为File的属性,并且IFile的类型可以接受图像,因此消费我不知道如何消费以将图像发送到api,下面是api的代码,请帮助我

 [HttpPost("addService/{Id}")]
    public async Task<IActionResult> AddServices([FromForm]AddServicesDto addserviceDto, int Id)
    {

        var serviceTypeFromRepo = await _repos.GetServiceType(Id);

        var file = addserviceDto.File;

        var uploadResult = new ImageUploadResult();

        if (file.Length > 0)
        {
            using (var stream = file.OpenReadStream())
            {
                var uploadParams = new ImageUploadParams()
                {
                    File = new FileDescription(file.Name, stream),
                    Transformation = new Transformation()
                        .Width(500).Height(500).Crop("fill").Gravity("face")
                };

                uploadResult = _cloudinary.Upload(uploadParams);
            }
        }

        addserviceDto.Url = uploadResult.Uri.ToString();
        addserviceDto.PublicId = uploadResult.PublicId;

        var serviceToCreate = _mapper.Map<Service>(addserviceDto);
        serviceTypeFromRepo.Services.Add(serviceToCreate);
        if (await _repos.SaveAll())
        {
            var serviceToReturn = _mapper.Map<ServiceToReturnDto>(serviceToCreate);
              return Ok(new { serviceToReturn });
        }
        return BadRequest("Could Not add Service");

    }

以上代码是api中的控制器    下面是模型

 public class AddServicesDto
{
    public string ServiceName { get; set; }
    public string ServiceDescription { get; set; }
    public string ServiceTitle { get; set; }
    public string Url { get; set; }
    public IFormFile File { get; set; }
    public string PublicId { get; set; }
}

请帮助我使用此特定方法,如何使用MVC实现此目的 仅供参考,我可以使用邮递员成功,但是我不知道如何通过mvc发送图像,请在那里帮助我

0 个答案:

没有答案