분류 전체보기 (199)
ººº::Development™:: (66)
ººº::Learning™:: (31)
ººº::Information™:: (37)
ººº::Note™:: (11)
ººº::Photo™:: (50)
ººº::zEtc™:: (3)
rss

믹시
tistory 티스토리 가입하기!
2007. 4. 17. 17:27
CVS형식의 파일로 다운로드 받기

이번 프로젝트 기간에 디비에서 Select된 내용중 원하는 내용만 사용자의 Local 컴퓨터로 다운로드 가능한 기능이 필요하게 되었다.

방식은 CSV로 다운로드 하는 방식이고
CSV로 만들어질 내용을 문자열로 만들고 해당하는 문자열을
Http Header를 이용해 다운로드 가능하도록 만들었다. 아니 정확하게 말하면 인터넷에서 찾았당~~ㅋㅋㅋ

처음으로 CVS로 만들 문자열을 만들고
for( int i = 0; i < string.length; i++ )
{
     strCsv = i + "aaa, bbb, ccc, ddd";
}

이제 httpheader를 통해 저장해주는 부분이다.
먼저 IE와 구분을 짖기 위해서..
// Http Header 설정(브라우저에 따라 달리...)
if( request.getHeader( "User-Agent" ).indexOf( "MSIE 5.5" ) != -1 )
{
  response.setHeader( "Content-Type", "doesn/matter;" );
  response.setHeader( "Content-Disposition", "filename=" + strFileName );
}
else
{
  response.setHeader( "Content-Type", "application/octet-stream;" );
  response.setHeader( "Content-Disposition", "attachment;filename=" + strFileName );
}

그리고 클라이언트 설정을 해준다.
response.setHeader( "cache-control", "no-cache" );
response.setHeader( "expires", "0" );
response.setHeader( "pragma", "no-cache" );

마지막으로 처음에 만들어준 CSV형식의 문자열을 화면에 뿌려준다. 물론 이때 뿌려지는 화면은 히든 페이지로 만들어 놓는 편이 화면 UI상 문제가 없을 것이다.
out.print( tempSave );   // 저장될 내용을 화면에 출력
out.flush();     // 출력된 내용을 적용함


위와 같은 내용을 변경하여 자신에기 필요한 부분에 넣어 주면 될 것이다.