ASP. NET Web API - невозможно загрузить изображение base64 - PullRequest
0 голосов
/ 04 апреля 2020

Среда: ASP. NET Web API. NET Core 2.1

Я только начал работать над ASP. NET Web API и застрял в загрузке образа base64. Вот мой код:

public bool UploadFile(string base64String)
    {
        try
        {
            var folderName = Constant.PATH_ITEM_IMAGES;

            string defaultImagePath = HostingEnvironment.MapPath("~/images");

            byte[] bytes = Convert.FromBase64String(base64String);

            using (MemoryStream ms = new MemoryStream(bytes))
            {
                Image pic = Image.FromStream(ms);

                pic.Save(defaultImagePath);
            }

            return true;
        }
        catch(Exception ex)
        {
            return false;
        }
    }

Оба HostingEnvironment.MapPath ("~") или Server.MapPath не работает. Кроме того, изображение не может быть найдено

Я использую диспетчер пакетов Nuget для управления зависимостями. Что мне здесь не хватает? Какой пакет мне нужно добавить?

Это тоже не помогло:

System.Web.HttpContextBase 'не содержит определения для' Current 'MVC 4 с Elmah Logging

1 Ответ

0 голосов
/ 05 апреля 2020

Используйте HttpContext.Current.Server.MapPath

public bool UploadFile(string base64String)
    {
        try
        {
            var folderName = Constant.PATH_ITEM_IMAGES;
            string defaultImagePath = HttpContext.Current.Server.MapPath("~/images/");

            byte[] bytes = Convert.FromBase64String(base64String);

            using (MemoryStream ms = new MemoryStream(bytes))
            {
                Image pic = Image.FromStream(ms);
                string imageName  = "";//get image name (pic.png)
                string picPath = defaultImagePath  + imageName;
                pic.Save(defaultImagePath);
            }

            return true;
        }
        catch(Exception ex)
        {
            return false;
        }
    }

, и при попытке сохранить изображение дайте ему имя и объедините его с целевой папкой.

...