我在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);
有什么问题?以及如何克服它?
答案 0 :(得分:6)
您无法使用JavaScript访问客户端文件,访问文件的唯一方法是首先将其上传到服务器或Flash应用程序。
答案 1 :(得分:2)
JavaScript对访问本地文件系统上的文件有很强的限制,我认为你可能会混淆客户端和服务器端的概念。
JavaScript在客户端的Web浏览器中运行。
我不确定你想要达到的目的,但是:
如果您尝试在客户端计算机上打开文件,则应将其上传。
如果您尝试在服务器上打开文件,则应将其放在Web应用程序中的可访问位置。
答案 2 :(得分:0)
将文件移动到您的网站文件夹并生成指向它的链接。
答案 3 :(得分:0)
如前所述,您无法使用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();
}