Как сохранить изображение байта [] в пользовательской папке в webapi? - PullRequest
0 голосов
/ 26 мая 2018

У меня есть одна модель, содержащая изображение, я отправляю модель из angularjs и получаю модель в webapi, мой метод в web api

 public IHttpActionResult Post([FromBody]Game model)
    {
        Image img = LoadImage(model.Image);
        Game game = model;
        _repository.Add<Game>(game);
        return Ok();
    }

 public Image LoadImage(string imageName)
    {
        string[] str = imageName.Split(',');
        byte[] bytes = Convert.FromBase64String(str[1]);   
        Image image;
        using (MemoryStream ms = new MemoryStream(bytes))
        {
            image = Image.FromStream(ms);
        }
        return image;
    }

, но этот код просто возвращает base64 к изображению, я хочу сохранить jpg на заказпапка в проекте

1 Ответ

0 голосов
/ 26 мая 2018

этот код решит вашу проблему

 public IHttpActionResult Post([FromBody]Game model)
    {
        var image = SaveImage(model.Image, Guid.NewGuid().ToString());
        model.Image = image; // set image name in model            
        _repository.Add<Game>(model);
        return Ok();
    }

   public string SaveImage(string ImgStr, string ImgName)
    {
        String path = HttpContext.Current.Server.MapPath("~/images/Games"); //Path

        //Check if directory exist
        if (!System.IO.Directory.Exists(path))
        {
            System.IO.Directory.CreateDirectory(path); //Create directory if it doesn't exist
        }

        string imageName = ImgName + ".jpg";

        //set the image path
        string imgPath = Path.Combine(path, imageName);


        string[] str = ImgStr.Split(',');
        byte[] bytes = Convert.FromBase64String(str[1]);

        File.WriteAllBytes(imgPath, bytes);

        return imageName;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...