2012-04-24 3 views
0

모든 서블릿과 HTML 페이지가있는 톰캣 웹 서버, 예를 들어 WS1이 있습니다. WS1의 클라이언트는 WS1에 파일을 업로드합니다. 그런 다음 해당 파일을 읽고 암호화하고 다른 폴더의 WS1에 저장합니다.웹 서버에서 다른 컴퓨터로 파일을 전송하는 클라이언트

이 암호화 된 파일을 다른 컴퓨터 (예 : 컴퓨터 A)에서 보내고 전송해야합니다. 클라이언트가 저장 한 파일을 검색하면 해당 파일을 컴퓨터 A에서 WS1로 다운로드해야한다고 가정합니다. 복호화 된 파일을 클라이언트에 보내야합니다.

암호화 부분까지 완료되었지만 파일 전송에 문제가 있습니다. 이것을 어떻게 할 수 있습니까?

답변

0

여기에 a. "파일은 머신 A에서 WS1로 다운로드되어야합니다"또는 "웹 서버에서 머신 A에 파일을 다운로드해야합니다".

이것은 실제로 질문 제목과 질문 본문과 모순됩니다.

"b." 당신이 원하는 것입니다 (아마도 있어야합니다),

그런 다음 웹 서버 WS1에서 파일을 다운로드하기위한 코드를 작성해야합니다.

다음은 Servlet을 사용하여 파일을 다운로드하는 발췌 목록입니다.

String value = "attachment;filename=\"" + URLEncoder.encode(filename, "UTF-8") +'"'; 
response.setHeader("Content-Disposition", value); 

OutputStream out = response.getOutputStream(); 
FileInputStream in = new FileInputStream(my_file); 
byte[] buffer = new byte[4096]; 
int length; 
while ((length = in.read(buffer)) > 0){ 
    // logic to decrypt the file 
    out.write(buffer, 0, length); 
} 
in.close(); 
out.flush(); 

물론 적절한 예외를 처리해야합니다.

+0

고맙습니다. Ur 코드는 나중에 다운로드 할 때 유용 할 것입니다. – sanket

+0

위의 코드를 filename과 my_file로 대체해야하는 코드를 지정하십시오. my_file을 "http://169.254.174.150:8084/WebApplication1/files/encrypt.txt"로 바꾸고 encrypt.txt 파일 이름을 바꾸려고했지만 작동하지 않습니다. 또한 나는 파일이 저장 될 곳을 얻지 못하고있다. 제발 도와주세요. thanx .. – sanket

+0

언급 된 예제 위치에 파일이있는 경우. 그런 다음'request.getContextPath()/files/encrypt.txt'가 Servlet에서 작동합니다. –

관련 문제