Кодировка Base64 в C# - проблема при отправке аттачмента через метод REST POST - PullRequest
1 голос
/ 07 мая 2020

Возможно ли в C # / Xamarin закодировать массив байтов в Base64, как это возможно в Java ?!
byte[] encBytes = Base64.encodeBase64(buffer);
Итак, я не хочу превратить байты в строку Base64 Я ищу массив байтов , закодированный с помощью Base64, как это сделано в Java

Изменить, чтобы отразить ответ:

byte[] buffer = new byte[(int)fileLen];
int offset = 0;int numRead = 0;
while ( offset < buffer.length && ( numRead = input.read(buffer, offset, buffer.length - offset)) >= 0) 
{
 offset += numRead;
}
byte[] encBytes = Base64.encodeBase64(buffer);


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

Edit2:
Проблема, похоже, не просто в кодировке, а в отправке закодированного файла на сервер.
При отправке файла создается файл на сервере, но файл либо поврежден (pdf и excel), либо пуст (docx).

1 Ответ

1 голос
/ 07 мая 2020

как это в java

public static String toBase64(String value){
byte[] message = value.getBytes("UTF-8");
}

в C#

 byte[] array = UTF8Encoding.UTF8.GetBytes(value);
 string base64 =Convert.FromBase64String(array);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...