2013-05-30 2 views
12

업로드 된 파일을 HttpPostedFileBase.SaveAs() 메서드로 실제 경로에 저장하고 싶습니다.HttpPostedFileBase.SaveAs를 사용하여 업로드 한 파일을 실제 경로에 저장

실제 경로를 선택하면 경로가 가상이어야한다는 예외가 표시됩니다.

var fileName = Path.GetFileName(fileurl.FileName); 
var path = "C:/Projets" + fileName; 
fileurl.SaveAs(Server.MapPath(path)); 

원하는 곳마다 파일을 저장할 수 있도록 코드를 변경하려면 어떻게해야합니까?

+0

나는 그것이 가능하지 않다고 생각합니다. IIS는 응용 프로그램 풀에서 응용 프로그램을 실행하고 모래 상자로 생각합니다. 해당 영역에 대한 액세스 권한 만 있습니다. – Belogix

+0

@Belogix하지만 어떻게 내가 그 지역에 파일을 저장하기 때문에 내가 그것을 삭제할 수있는 권한이 없어 심지어 새 디렉토리 또는 파일 파일을 만들 수 있기 때문에 응용 프로그램 풀 Processus의 권한을 변경할 수 있습니다 – Lamloumi2

답변

18

Server.MapPath은 웹 사이트의 일부인 물리적 위치에서만 작동합니다. 당신은 당신이 다음 사용할 수있는 외부 파일을 저장할 경우 : 응용 프로그램 풀을 실행하는 계정에이 폴더에 쓰기 권한이 부여되어 있지만

var fileName = Path.GetFileName(fileurl.FileName); 
fileurl.SaveAs(Path.Combine(@"c:\projects", fileName)); 

이 있는지 확인합니다.

1

Server.MapPath는 가상 경로 용입니다. Path.GetFullPath (path)를 사용해 볼 수 있습니다.

관련 문제