SilverLight中的文件上传?

时间:2010-06-24 05:17:07

标签: c# silverlight openfiledialog

HI
我尝试使用Silver-Light上传文件。为此,我使用System.IO.File读取文件字节,然后将数据发送到服务,以将该数据作为文件数据插入数据库。
(吹代码)

        byte[] data;
        OpenFileDialog open = new OpenFileDialog();
        open.Filter = "Excel Files (*.xlsx)|*.xlsx";
        if (open.ShowDialog()==true)
        {
            open.File.OpenRead();
            data=System.IO.File.ReadAllBytes(open.File.FullName);
            //---- send for service ---Service.savefileindatabase(data);
        }

所以当使用此代码在行中包含VS的“ReadAllBytes”异常抛出时,这是异常细节:
“不允许文件操作。拒绝访问路径'。” (有关我选择的文件在本地云端硬盘中的更多信息)

那我该怎么办?

1 个答案:

答案 0 :(得分:2)

在Silverlight中,有比通常的wpf编程更多的限制。您可能上传的文件可能只在特定目录中,而某些方法不可用,如File.FullName。只能上载手动选择的文件。你的起始代码没问题。但是在Silverlight中,您无法访问路径(仅限于名称)。

有一些OpenTextOpenRead方法可让您从所选文件中获取流。从那时起,您将能够使用来自流的数据执行您想要的操作。

if (open.ShowDialog())
{
    using (StreamReader reader = open.SelectedFile.OpenRead())
    {
       ...
    }
}