C# &引用;“拒绝访问”;在客户端尝试打开文件时

C# &引用;“拒绝访问”;在客户端尝试打开文件时,c#,asp.net,javascript,C#,Asp.net,Javascript,我正在用c#开发一个web应用程序,其中我使用以下代码。 当试图在客户端打开文件时,我被拒绝访问 String strPop = "<script language='javascript'>" + Environment.NewLine + "window.open('C://myLocalFile.txt'," + "'Report','height=520,width=730," +

我正在用c#开发一个web应用程序,其中我使用以下代码。 当试图在客户端打开文件时,我被拒绝访问

String strPop = "<script language='javascript'>" + Environment.NewLine + 
                "window.open('C://myLocalFile.txt'," +
                "'Report','height=520,width=730," + 
                "toolbars=no,scrollbars=yes,resizable=yes');" + 
                Environment.NewLine + "</script>" + Environment.NewLine;
Page.RegisterStartupScript("Pop", strPop);
String strop=”“+Environment.NewLine+
“window.open('C://myLocalFile.txt',”+
“‘报告’,‘高度=520,宽度=730,’”
“工具栏=否,滚动条=是,可调整大小=是”);“+
Environment.NewLine+“”+Environment.NewLine;
RegisterStartupScript(“Pop”,strPop);

有什么问题吗?如何克服它

您无法使用JavaScript访问客户端文件,访问文件的唯一方法是首先将其上载到服务器或flash应用程序。

将文件移动到您的网站文件夹并生成指向该文件的链接。

JavaScript对访问本地文件系统上的文件有很强的限制,我认为您可能混淆了客户端和服务器端的概念

JavaScript在客户端的web浏览器中运行

我不确定你想要实现什么,但是:

  • 如果您试图在客户端计算机上打开文件,则应上载该文件

  • 如果试图在服务器上打开文件,则应将其放在web应用程序中可访问的位置


如前所述,不能使用Javascript打开客户端文件。但是,Silverlight确实允许这样做,所以只要不介意依赖性,就可以嵌入Silverlight控件来处理文件

private void btnOpenFile_Click(object sender, RoutedEventArgs e)
{
    OpenFileDialog dlg = new OpenFileDialog();
    dlg.Filter = "Text Files (.txt)|*.txt|All Files (*.*)|*.*";
    dlg.FilterIndex = 1;
    bool? userClickedOK = dlg.ShowDialog();
    System.IO.Stream fileStream = dlg.File.OpenRead();
    //do whatever you want with the fileStream ...
    fileStream.Close();
}