2008-09-24 5 views

답변

5

아마도 코드를 직접 작성해야 할 것입니다. 사용자 파일 관리를 위해 ASP.NET에는 본질적인 것이 없습니다. 그러나 그렇게하는 코드는 상대적으로 쉽습니다. 사용자 이름이 고유하고 변경되지 않는다고 가정하면 사용자 이름을 경로 (Path.Combine 사용)와 결합하여 해당 위치에 업로드 할 수 있습니다. 나는 그 위치를 잠그면 다른 누구도 접근 할 수 없게된다.

+0

새로운 사용자가 길을 따라 추가되기 때문에 손으로 코딩 할 수 없습니다. SkyDrive를 내가 달성하려고 시도하는 것의 완벽한 예라고보고 있습니다. – MarlonRibunal

+0

나는 그가 손으로 코딩한다는 것은 사용자 이름을 기반으로 프로그램 적으로 폴더를 만드는 것이라고 생각하고, 단순히 .net에 기존의 규칙이 없다는 것을 간단히 밝히고 있었다. –

+0

정확하게. 프로그래밍 방식으로 폴더를 만들어야합니다. – Haacked

0

폴더의 존재 여부를 확인하고 존재하지 않는 사용자를 위해 폴더를 만들 수는 있지만 보안상의 영향이 있습니다. 데이터를 데이터베이스에 저장하고 사용자에게 연결하려는 경우도 있습니다. 이는 사용자가 업로드 한 내용에 따라 달라집니다. 당신은 폼 인증을 사용하는 경우 사용자의 이름이나 ID를위한 기초 역할을 할 수있어서, 당신은 규칙을 설정할 수 있습니다 폼 인증

를 사용

:

+0

일반적인 반론은 "파일은 데이터베이스가 아닌 파일 시스템에 속합니다"라고 생각하지만 DB에 파일을 저장하는 것이 더 쉬울 수도 있습니다. –

+0

그건 그렇게하지 않는 주된 이유 중 하나지만, 상황에 따라 말이 될 수 있습니다. –

0

당신이 할 수있는 몇 가지 방법이 있습니다 사용자가 파일을 업로드 할 수있는 서버의 경로. 사용자는 해당 폴더에 직접 액세스 할 수 없으므로 사용자는 웹 응용 프로그램을 통해 서버에서 파일을 다운로드 할 수 있어야합니다. Windows를 사용하는 경우 Windows 인증

를 사용

(예를 들어, 액티브 디렉터리) 인증, 당신은 실제 폴더의 위치와 웹 응용 프로그램을 통해 모두에 대한 사용자 액세스를 제공 할 수 있습니다.

P. - 마를 런을 만나서 반갑습니다!

+0

"... 사용자의 사용자 이름이나 아이디가 서버의 사용자가 파일을 업로드 할 수있는 경로의 기초가 될 수있는 규칙을 설정할 수 있습니다." 그게 "어떻게?" 내 질문의 일부. 이것에 대한 샘플이 있습니까? 여기에서 만나서 반갑습니다! – MarlonRibunal

+0

나는 @Guy가 그쪽으로 좋은 대답을 주었다고 생각한다. :) –

+0

나는 그것을 살펴볼 것이다 ... tnx! – MarlonRibunal

3

내가 과거에해온 방법은 기본 업로드 폴더 (업로드라고 함)를 사용하고 해당 폴더에서 DB의 사용자 ID를 사용하여 폴더를 만드는 것입니다. 따라서 구조는 .. 145의 사용자 ID를 가진 사용자에 대해 \ uploads \ 145가됩니다.

내 코드가 수행하는 첫 번째 작업은 폴더가 존재하는지 확인한 다음 Directory.Create () (또는 구문이 무엇이든간에) 업로드하기 전에 폴더를 만듭니다.

추가 정보 도움이되는 정보 : 이름이 같은 두 개의 파일을 업로드하는 경우 이름 충돌을 피하는 GUID를 사용하여 파일 이름을 바꿉니다. 단점은 원래 파일 이름과 실제 (GUID) 파일 이름으로 테이블을 유지해야한다는 것입니다.

관련 문제