구글 아날리스틱


egov에서 사운드 파일 불러내는법 by 야근하는개발자



egov에서 사운드 파일 및 기타 영상 파일 불러낼때 사용방법

원래 전자정부프레임워크에는 getImage.do와 getDown.do인가 이거 두개밖에 없었던거 같은데

이걸로는 파일을 업로드 한후 

웹페이지 자체에서 재생하기가 힘들었다..

다른 분들은 어떻게 할지 모르겠다만...

여튼..

getImage.do를 조금 수정하면 아주 만족할만한 메소드를 만들수 있다

아주 조금 수정 하는거다..

 @RequestMapping("/getSound.do")
   public void getSoundInf(@RequestParam("atchFileId") String atchFileId,@RequestParam("fileSn") String fileSn, HttpServletResponse response) throws Exception {

//@RequestParam("atchFileId") String atchFileId,
//@RequestParam("fileSn") String fileSn,
/* String atchFileId = (String)commandMap.get("atchFileId");
String fileSn = (String)commandMap.get("fileSn");*/

FileVO vo = new FileVO();

vo.setAtchFileId(atchFileId);
vo.setFileSn(fileSn);

//------------------------------------------------------------
// fileSn이 없는 경우 마지막 파일 참조
//------------------------------------------------------------
if (fileSn == null || fileSn.equals("")) {
int newMaxFileSN = fileService.getMaxFileSN(vo);
vo.setFileSn(Integer.toString(newMaxFileSN - 1));
}
//------------------------------------------------------------

FileVO fvo = fileService.selectFileInf(vo);

//String fileLoaction = fvo.getFileStreCours() + fvo.getStreFileNm();

File file = null;
FileInputStream fis = null;

BufferedInputStream in = null;
ByteArrayOutputStream bStream = null;

try {
   file = new File(fvo.getFileStreCours(), fvo.getStreFileNm());
   fis = new FileInputStream(file);

   in = new BufferedInputStream(fis);
   bStream = new ByteArrayOutputStream();

   int imgByte;
   while ((imgByte = in.read()) != -1) {
    bStream.write(imgByte);
   }

String type = "";

if (fvo.getFileExtsn() != null && !"".equals(fvo.getFileExtsn())) {
   if ("wav".equals(fvo.getFileExtsn().toLowerCase())) {
type = "audio/x-wav";
   } else {
    type = "audio/" + fvo.getFileExtsn().toLowerCase();
   }
   type = "audio/" + fvo.getFileExtsn().toLowerCase();

} else {
//LOGGER.debug("Image fileType is null.");
}

response.setHeader("Content-Type", type);
response.setContentLength(bStream.size());

bStream.writeTo(response.getOutputStream());

response.getOutputStream().flush();
response.getOutputStream().close();

} finally {
EgovResourceCloseHelper.close(bStream, in, fis);
}
   }


이부분에서

if (fvo.getFileExtsn() != null && !"".equals(fvo.getFileExtsn())) {
   if ("wav".equals(fvo.getFileExtsn().toLowerCase())) {
type = "audio/x-wav";
   } else {
    type = "audio/" + fvo.getFileExtsn().toLowerCase();
   }
   type = "audio/" + fvo.getFileExtsn().toLowerCase();

} else {
//LOGGER.debug("Image fileType is null.");
}

요부분이 수정된거다. 확장자 부분은 wav로 넣은것
그리고 타입을 audio로 설정하면 아웃 풋 스트림을 클라이언트 쪽으로 전송하게 되고

흔히 우리가 사용하는 audio 플레이어 처럼 사용이 가능하다



덧글

댓글 입력 영역