4

ファイル ピッカーで選択したファイルの base64 文字列が必要です。

//file is a StorageFile

FileRandomAccessStream stream = (FileRandomAccessStream)await file.OpenAsync(FileAccessMode.ReadWrite);

using (MemoryStream ms = new MemoryStream())
{
    Stream ss1 = stream.AsStream(); ;
    s1.CopyTo(ms);

}
byteArray = ms.ToArray();
string imageStringSixtyfour = Convert.ToBase64String(byteArray);
if (imageStringSixtyfour != null)
return imageStringSixtyfour;

返される文字列は常に空です。何かアイデアはありますか? オンラインのほとんどの例は、W8 プラットフォームの一部ではないクラスを使用しています。

4

1 に答える 1

10

これを試して

private async Task<string> StorageFileToBase64(StorageFile file)
{
    string Base64String = "";

    if (file != null)
    {
        IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.Read);
        var reader = new DataReader(fileStream.GetInputStreamAt(0));
        await reader.LoadAsync((uint)fileStream.Size);
        byte[] byteArray = new byte[fileStream.Size];
        reader.ReadBytes(byteArray);
        Base64String = Convert.ToBase64String(byteArray);
    }

    return Base64String;
}
于 2013-09-01T03:54:43.907 に答える