Как можно выбрать и преобразовать файл в base64?

175
08 июля 2017, 07:06

Хочу по нажатию кнопки открывать проводник для выбора файла (FileOpenPicker) и после этого преобразовывать выбранный файл в base64. Никак не получается разобраться как связать тип переменной, который я получаю после выполнения кода:

FileOpenPicker open = new FileOpenPicker();
open.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
open.ViewMode = PickerViewMode.Thumbnail;
// Filter to include a sample subset of file types
open.FileTypeFilter.Clear();
open.FileTypeFilter.Add(".bmp");
open.FileTypeFilter.Add(".png");
open.FileTypeFilter.Add(".jpeg");
open.FileTypeFilter.Add(".jpg");
// Open a stream for the selected file
StorageFile file = await open.PickSingleFileAsync();

С примером кода base64:

var fB = File.ReadAllBytes(@"C:\rab\kot.jpg");
string encodedFile = Convert.ToBase64String(fB);
Console.WriteLine("Base 64 Encoded File : {0}", encodedFile);
var dFB = Convert.FromBase64String(encodedFile);
File.WriteAllBytes(@"C:\rab\newkot.jpg", dFB);
Console.ReadKey();
Answer 1

StorageFile предоставляет информацию о файле. Еще у него есть метод OpenStreamForReadAsync, позволяющий открыть файл для чтения (возвращает поток). В итоге можно сделать так:

FileOpenPicker open = new FileOpenPicker();
open.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
open.ViewMode = PickerViewMode.Thumbnail;
// Filter to include a sample subset of file types
open.FileTypeFilter.Clear();
open.FileTypeFilter.Add(".bmp");
open.FileTypeFilter.Add(".png");
open.FileTypeFilter.Add(".jpeg");
open.FileTypeFilter.Add(".jpg");
// Open a stream for the selected file
StorageFile file = await open.PickSingleFileAsync();
var stream = await file.OpenStreamForReadAsync();
var bytes = new byte[(int)stream.Length];
stream.Read(bytes, 0, (int)stream.Length);
string encodedFile = Convert.ToBase64String(bytes);
READ ALSO
Как модифицировать список аргументов callback?

Как модифицировать список аргументов callback?

Здравствуйте, помогите пожалуйста с такой вот задачейСуть вкратце: необходимо передать свежесозданный аргумент в функцию, которая уже существует

263
Javascript Сортировка массива/Вывод списка

Javascript Сортировка массива/Вывод списка

в массиве у меня список городов и областей вот пример вывода:

372
Поиск по массиву JavaScript

Поиск по массиву JavaScript

У меня имеется массив на JS содержащий в себе числовые значения:

339