2


,我尝试在 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”异常的行中使用此代码时,这是异常详细信息:
“不允许文件操作。访问路径 '' 被拒绝。”
(有关我选择的文件在本地驱动器中的更多信息)

那我该怎么办?

4

1 回答 1

2

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

有一些方法可让您从所选文件中获取流OpenTextOpenRead从那时起,您将能够对来自流的数据做您想做的事情。

if (open.ShowDialog())
{
    using (StreamReader reader = open.SelectedFile.OpenRead())
    {
       ...
    }
}
于 2010-06-24T05:24:22.337 回答