Я изо всех сил пытаюсь найти способ преобразовать строку base 64 в jpeg или файл без использования класса Image. Можно ли создать файл, не сохраняя его локально и не выгружая в хранилище BLOB-объектов Azure?
var bytes = Convert.FromBase64String(base64String);
Похоже, вы могли бы использовать детали из этот вопрос и ответ. Я знаю, что вы используете .NET Core, поэтому, если вам нужна отличная совместимая библиотека изображений, взгляните на ImageSharp
@EdPlunkett Да, извините. Как передать его в файл, чтобы я мог загрузить этот файл в хранилище BLOB-объектов.
@JayJay Что означает "передать в файл"? Опишите, что вы хотите сделать, используя общую терминологию. Вы хотите создать файл, но не хотите сохранять данные в файл. Вам нужно быть более ясным, потому что вы говорите две вещи, которые противоречат друг другу.
@EdPlunkett Мне он нужен как IFormFile, чтобы я мог загрузить его в свое хранилище





Чтобы он оставался полностью чистым и простым, используйте что-то вроде этого:
using (var img = new MemoryStream(bytes))
{
cloudBlockBlob.UploadFromStream(img);
}
Это создает MemoryStream, который можно использовать для вызова CloudBlockBlob.UploadFromStream ().
Редактировать
Или, как @ mike-z сказал в комментарии ниже, вы можете напрямую использовать CloudBlockBlob.UploadFromByteArray ().
Также есть UploadFromByteArray, поэтому нет необходимости даже создавать поток.
Спасибо, сэр! В этом есть большой смысл. Работал как шарм.
@mikez правда! Это делает его еще более чистым!
Что означает «создать файл, а не сохранять его локально»? "Пропустить" куда? Вы спрашиваете, как записать байты в файл?