2009-10-22 1 views
0

나는 아래 코드를 사용하는 C# 웹 응용 프로그램을 개발 중입니다. 클라이언트 쪽에서 파일을 열려고 할 때 "액세스가 거부되었습니다"라는 메시지가 나타납니다.클라이언트 측에서의 파일 열기를 시도 할 때 "액세스 거부"가 발생했습니다.

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); 

무엇이 문제입니까? 그리고 그것을 극복하는 방법?

답변

6

JavaScript로 클라이언트 측 파일에 액세스 할 수 없으므로 파일에 액세스하는 유일한 방법은 먼저 서버 또는 플래시 응용 프로그램에 업로드하는 것입니다.

0

파일을 웹 사이트 폴더로 이동하고 링크를 생성하십시오.

2

JavaScript는 로컬 파일 시스템의 파일에 액세스하는 데 강력한 제한 사항이 있습니다. 클라이언트 측 및 서버 측 개념을 혼합했을 가능성이 높습니다.

JavaScript는 클라이언트의 웹 브라우저에서 클라이언트 측에서 실행됩니다.

당신이 달성하고자하는 일에 대해 잘 모르겠지만, :

  • 당신이 클라이언트 컴퓨터에있는 파일을 열려고 시도 할 경우, 당신이 그것을 업로드해야합니다.

  • 서버에서 파일을 열려고하는 경우 웹 응용 프로그램 내에서 액세스 할 수있는 위치에 파일을 저장해야합니다.

0

이미 말했듯이 자바 스크립트를 사용하여 클라이언트 측 파일을 열 수 없습니다. 그러나 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(); 
} 
관련 문제