userA가 파일을 업로드하면 그의 파일은 folderA에 업로드되고 userB는 folderB에 업로드됩니다. ASP.NET의 역할/프로필. 폴더는 이미 존재합니다. 누군가?ASP.NET의 각 폴더에 사용자를 연결할 수있는 방법은 무엇입니까?
답변
아마도 코드를 직접 작성해야 할 것입니다. 사용자 파일 관리를 위해 ASP.NET에는 본질적인 것이 없습니다. 그러나 그렇게하는 코드는 상대적으로 쉽습니다. 사용자 이름이 고유하고 변경되지 않는다고 가정하면 사용자 이름을 경로 (Path.Combine 사용)와 결합하여 해당 위치에 업로드 할 수 있습니다. 나는 그 위치를 잠그면 다른 누구도 접근 할 수 없게된다.
폴더의 존재 여부를 확인하고 존재하지 않는 사용자를 위해 폴더를 만들 수는 있지만 보안상의 영향이 있습니다. 데이터를 데이터베이스에 저장하고 사용자에게 연결하려는 경우도 있습니다. 이는 사용자가 업로드 한 내용에 따라 달라집니다. 당신은 폼 인증을 사용하는 경우 사용자의 이름이나 ID를위한 기초 역할을 할 수있어서, 당신은 규칙을 설정할 수 있습니다 폼 인증
를 사용
:
일반적인 반론은 "파일은 데이터베이스가 아닌 파일 시스템에 속합니다"라고 생각하지만 DB에 파일을 저장하는 것이 더 쉬울 수도 있습니다. –
그건 그렇게하지 않는 주된 이유 중 하나지만, 상황에 따라 말이 될 수 있습니다. –
당신이 할 수있는 몇 가지 방법이 있습니다 사용자가 파일을 업로드 할 수있는 서버의 경로. 사용자는 해당 폴더에 직접 액세스 할 수 없으므로 사용자는 웹 응용 프로그램을 통해 서버에서 파일을 다운로드 할 수 있어야합니다. Windows를 사용하는 경우 Windows 인증
를 사용
는(예를 들어, 액티브 디렉터리) 인증, 당신은 실제 폴더의 위치와 웹 응용 프로그램을 통해 모두에 대한 사용자 액세스를 제공 할 수 있습니다.
P. - 마를 런을 만나서 반갑습니다!
"... 사용자의 사용자 이름이나 아이디가 서버의 사용자가 파일을 업로드 할 수있는 경로의 기초가 될 수있는 규칙을 설정할 수 있습니다." 그게 "어떻게?" 내 질문의 일부. 이것에 대한 샘플이 있습니까? 여기에서 만나서 반갑습니다! – MarlonRibunal
나는 @Guy가 그쪽으로 좋은 대답을 주었다고 생각한다. :) –
나는 그것을 살펴볼 것이다 ... tnx! – MarlonRibunal
내가 과거에해온 방법은 기본 업로드 폴더 (업로드라고 함)를 사용하고 해당 폴더에서 DB의 사용자 ID를 사용하여 폴더를 만드는 것입니다. 따라서 구조는 .. 145의 사용자 ID를 가진 사용자에 대해 \ uploads \ 145가됩니다.
내 코드가 수행하는 첫 번째 작업은 폴더가 존재하는지 확인한 다음 Directory.Create () (또는 구문이 무엇이든간에) 업로드하기 전에 폴더를 만듭니다.
추가 정보 도움이되는 정보 : 이름이 같은 두 개의 파일을 업로드하는 경우 이름 충돌을 피하는 GUID를 사용하여 파일 이름을 바꿉니다. 단점은 원래 파일 이름과 실제 (GUID) 파일 이름으로 테이블을 유지해야한다는 것입니다.
- 1. 사용자를 장바구니와 연결할 수있는 방법은 무엇입니까?
- 2. Asp.Net의 모든 하위 폴더에 대해 HttpHandler를 등록하는 방법은 무엇입니까?
- 3. SQL Server 2008에서 데이터베이스 X에 연결할 사용자를 표시하는 방법은 무엇입니까?
- 4. MYSQL/PHP - 사용자를 프로젝트에 연결할 수있는 효율적인 방법
- 5. Facebook 사용자를 각 프로필 페이지로 다시 보내는 방법은 무엇입니까?
- 6. 현재 사용자를 정의하는 방법은 무엇입니까?
- 7. 양식없이 Facebook 사용자를 인증하는 방법은 무엇입니까?
- 8. 다른 앱에서 연결할 수있는 webapp을 보호하는 방법은 무엇입니까?
- 9. ASP.NET의 응용 프로그램 데이터 특수 폴더에 대한 사용자 권한
- 10. asp.net의 폴더에 파일을 업로드 하시겠습니까? 내가 원하는
- 11. 하위 클래스에 연결할 수있는 이유는 무엇입니까?
- 12. mysql이 연결할 수있는 가장 좋은 드라이버는 무엇입니까?
- 13. 기존 사용자를 fb 계정에 연결할 때주의 사항
- 14. 사용자를 페어링하는 방법은 무엇입니까? (Omegle.com과 유사)
- 15. 각 행을 전송할 수있는 형식으로 테이블을 마크 업하는 방법은 무엇입니까?
- 16. 페이지의 각 링크를 통해 jQuery로 추가 할 수있는 방법은 무엇입니까?
- 17. ASP.NET의 gpstate 파일은 무엇입니까
- 18. 사용자를 로그인으로 제한하는 방법은 무엇입니까?
- 19. 권한이없는 사용자를 예방하는 방법은 무엇입니까?
- 20. SOAP로 사용자를 인증하는 방법은 무엇입니까?
- 21. 세션간에 사용자를 지속시키는 방법은 무엇입니까?
- 22. ASP.net의 버전을 확인하는 방법은 무엇입니까?
- 23. LDAP를 통해 AD에서 사용자를 활성화하는 방법은 무엇입니까?
- 24. gdbserver에 연결할 수있는 그래픽 디버거
- 25. Devise 사용자를 효율적으로 시드하는 방법은 무엇입니까?
- 26. WebDav를 통해 Exchange 2007 공용 폴더에 액세스하는 방법? 나는 유사한 URL을 통해 공용 폴더에 WebDAV를 통해 연결할 수있는 Exchange 2003에서는
- 27. 사용자를 올바른 활동으로 연결하는 방법은 무엇입니까?
- 28. ASP.NET의 Identity 열
- 29. ASP.Net의 기본 문서를 설정하는 방법
- 30. 보관 된 각 요소의 각 버전을 찾는 방법은 무엇입니까?
새로운 사용자가 길을 따라 추가되기 때문에 손으로 코딩 할 수 없습니다. SkyDrive를 내가 달성하려고 시도하는 것의 완벽한 예라고보고 있습니다. – MarlonRibunal
나는 그가 손으로 코딩한다는 것은 사용자 이름을 기반으로 프로그램 적으로 폴더를 만드는 것이라고 생각하고, 단순히 .net에 기존의 규칙이 없다는 것을 간단히 밝히고 있었다. –
정확하게. 프로그래밍 방식으로 폴더를 만들어야합니다. – Haacked