Не удается отправить изображение generi c base64 в API с помощью filepath - PullRequest
0 голосов
/ 19 апреля 2020

Итак, я пытаюсь отправить base64 строку изображения в Cloudinary. Все работает, за исключением одного бита, путь к файлу. Нет реального пути к файлу, так как файл не сохраняется.

Вот как это должно выглядеть (с @ в начале):

var uploadParams = new ImageUploadParams()
{
    File = new FileDescription(@"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==")
};

Вот как я это делаю:

var param = ("data:image/png;base64," + file);
// file is equal to the string (param gives the correct value that I'm looking for)

var uploadParams = new ImageUploadParams()
{
    File = new FileDescription(param)
};

I ' мы попробовали это:

// 1

var uploadParams = new ImageUploadParams()
{
    File = new FileDescription(@param)
};

// 2

var uploadParams = new ImageUploadParams()
{
    File = new FileDescription(@ + param)
};

// 3

var uploadParams = new ImageUploadParams()
{
    File = new FileDescription((@param).ToString())
};

Но они не работают, и я действительно не знаю, как это сделать.

1 Ответ

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

На основании ссылки @Oguz Ozgul ваше решение будет:

string dataImageBase64 = @"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
string pattern = "data:.*?base64,";
string base64string = Regex.Replace(dataImageBase64, pattern, "");
Stream imageStream = new MemoryStream(Convert.FromBase64String(base64string));
var uploadParams = new ImageUploadParams
{
    File = new FileDescription("Picture", imageStream)
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...