【问题标题】:Metro getting the base64 string of a StorageFileMetro 获取 StorageFile 的 base64 字符串
【发布时间】:2013-08-31 23:16:58
【问题描述】:

我需要文件选择器选择的文件的 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 平台的类

【问题讨论】:

    标签: c# windows-8 windows-runtime microsoft-metro winrt-xaml


    【解决方案1】:

    试试这个

    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;
    }
    

    【讨论】:

    • 谢谢...过了一会儿找到了 DataReader 类,它工作得很好,非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 2020-08-11
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多