【问题标题】:File Upload in SilverLight?SilverLight 中的文件上传?
【发布时间】:2011-03-07 15:35:07
【问题描述】:

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

那我该怎么办?

【问题讨论】:

    标签: c# silverlight openfiledialog


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢帮助。我也想知道如何在 silver-Light 中写入文件(下载)。问候 Rev
    • 是一样的,但是你打开一个流来写。也许您也对独立存储感兴趣,这里有您可能感兴趣的答案:stackoverflow.com/questions/753646/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多