2012-10-11 5 views
1

내 웹 응용 프로그램에서 파일을 사용자 컴퓨터에서 서버로 이동해야합니다. 이 작업을 수행하려면 ascx 구성 요소를 사용해야합니다. 소스 파일이 "내 문서"또는 "내 그림"또는 "사용자"폴더 안에 하위 폴더 같은 폴더에있을 때File.Move() access denied ASP.NET

Private Function FileReplciate(ByRef FilePath As String) 
    'FilePath is the full file path e.g C:/Program Files/file.txt 

     ' Create an id to hide the original file name (for security) 

     Dim id = New Guid; 

     Try 

     'Here I move the file using File.Move() here is the error 
     File.Move(FilePath, Server.MapPath("temp\" & id.ToString)) 

     Catch ex As exception 

     End Try 

End Function 

그래서 내가 액세스 거부 오류가 발생했습니다 : 여기

코드입니다 .

원본 파일이 "C : \"또는 "C : \ ProgramFiles"와 같은 폴더에있을 때이 오류가 발생하지 않습니다.

+0

이미 시도하고 같은 오류가 발생합니다. –

답변

2

일반적으로 응용 프로그램이 실행중인 계정에 적절한 권한이 없기 때문에 ASP.NET에서 오류가 발생합니다.

하지만 파일 업로드에 대해 설명했습니다. 서버 측 코드는 클라이언트 시스템 파일 시스템에 액세스 할 수 없지만 불가능합니다. 고객이 원하는 위치에서 업로드해야합니다. 이를 위해 <asp:FileUpload> 컨트롤을 사용하십시오.

+0

도움을 주셔서 감사합니다. 실제로 파일 업로드를 사용하여이 작업을 수행했지만 응용 프로그램에서 업로드 된 파일의 복사본을 만들어야하는데이 작업은 사용자가 아닌 구성 요소에서 수행해야합니다. 이것을하는 또 다른 방법이 있습니다. –

+0

@Guilherme : 업로드 한 파일을 이동하려고합니다. 업로드 직후 적절한 위치에 파일을 놓을 수 없습니까? – abatishchev

+0

그래, 그게 유일한 해결책이라고 생각해. 내 응용 프로그램의 일부 제한 때문에이 작업을 수행하지는 않았지만이를 수행해야합니다. 감사합니다. –

관련 문제