2010-03-20 2 views

답변

2

필요하지 않습니다. 내가 클라이언트이고 당신이 서버라고 상상해보십시오. "C :/My Documents/passwords.txt"라는 전체 파일 경로를 제공합니다. 서버로 프로그래밍 방식으로 파일 내용에 액세스하는 방법은 무엇입니까? new File("C:/My Documents/passwords.txt") 아마도? 논리적으로 생각해 보면, 우리는 모두 과 물리적으로 다른 기계에서 실행됩니다. 전체 경로에 대한 정보는이 아닌 입니다.

HTML 파일 업로드는 실제로 파일 이름 의 내용을 클라이언트에서 서버로 서버로 보냅니다. InputStream 또는 FileItem#getInputStream()으로 콘텐츠를 가져 오거나 FileItem#write()으로 직접 디스크에 기록하면됩니다. FileUpload User Guide에 따라

FileItem#getName()은 유일한 파일 이름을 얻을 수 있지만 일부 웹 브라우저는 Internet Explorer 및 Opera와 같은 클라이언트 쪽 디스크 파일 시스템 경로 전체를 보냅니다. 이것은 입니다.입니다. FileUpload FAQ에 따라 경로를 자르려면 FilenameUtils#getName()해야합니다.

(단, 파란색의 모든 코드는 클릭 가능하고 Javadocs를 가리 킵니다. 필독적으로 읽고 해석하는 것을 권장합니다. 즉, 필요한 모든 정보를 제공합니다.)

+0

또한 IMO : 브라우저에서 정보를 전송하면 사용자의 신뢰를 악용하는 것입니다. 내 사용자 이름이나 내 파일을 구성하는 방법 (내 경로에 있음)을 공개하고 싶습니까? 나를 위해, IE 용 관 (그리고 불행히도, 오페라도 방금 배웠습니다)에 대한 관절이 하나 더 있습니다. –

3

브라우저의 보안 인 정책으로 인해 클라이언트 측에서 파일 경로를 가져올 방법이 없습니다. 서명 된 자바 애플릿을 통해 실행하거나 서블릿에서 가져와야합니다.

fileUpload.getFilename은 전체 경로를 반환 할 수도 있고 반환하지 않을 수도 있습니다. 브라우저에 따라 다릅니다.

+0

이 작업을 수행 할 수있는 방법이 있습니까? –

관련 문제