728x90
spring 전자 정부 파일이미지
package egovframework.com.cmm.web;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import egovframework.com.cmm.SessionVO;
import egovframework.com.cmm.service.EgovFileMngService;
import egovframework.com.cmm.service.FileVO;
/**
* @Class Name : EgovImageProcessController.java
* @Description :
* @Modification Information
*
* 수정일 수정자 수정내용
* ------- ------- -------------------
* 2009. 4. 2.
* 2011.08.31. 경량환경 템플릿 커스터마이징버전 생성
*
* @author 공통 서비스 개발팀 이삼섭
* @since 2009. 4. 2.
* @version
* @see
*
*/
@SuppressWarnings("serial")
@Controller
public class EgovImageProcessController extends HttpServlet
{
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
Logger log = LoggerFactory.getLogger(EgovImageProcessController.class);
/**
* 첨부된 이미지에 대한 미리보기 기능을 제공한다.
*
* @param atchFileId
* @param fileSn
* @param sessionVO
* @param model
* @param response
* @throws Exception
*/
@RequestMapping("/cmm/fms/getImage.do")
public void getImageInf(SessionVO sessionVO, ModelMap model, Map<String, Object> commandMap, 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);
FileVO fvo = fileService.selectFileInf(vo);
//String fileLoaction = fvo.getFileStreCours() + fvo.getStreFileNm();
File file = new File(fvo.getFileStreCours(), fvo.getStreFileNm());
FileInputStream fis = null;
new FileInputStream(file);
BufferedInputStream in = null;
ByteArrayOutputStream bStream = null;
try
{
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("jpg".equals(fvo.getFileExtsn().toLowerCase()))
{
type = "image/jpeg";
}
else
{
type = "image/" + fvo.getFileExtsn().toLowerCase();
}
type = "image/" + fvo.getFileExtsn().toLowerCase();
}
else
{
log.debug("Image fileType is null.");
}
response.setHeader("Content-Type", type);
response.setContentLength(bStream.size());
bStream.writeTo(response.getOutputStream());
response.getOutputStream().flush();
response.getOutputStream().close();
}
catch(Exception e)
{
log.debug("ERROR", e);//e.printStackTrace();
}
finally
{
if(bStream != null)
{
try
{
bStream.close();
}
catch(Exception est)
{
log.debug("IGNORED: " + est.getMessage());
}
}
if(in != null)
{
try
{
in.close();
}
catch(Exception ei)
{
log.debug("IGNORED: " + ei.getMessage());
}
}
if(fis != null)
{
try
{
fis.close();
}
catch(Exception efis)
{
log.debug("IGNORED: " + efis.getMessage());
}
}
}
}
}
<img id="img_file" alt="파일보기링크" src="<%=request.getContextPath() %>/cmm/fms/getImage.do?atchFileId=${fileInfo.fileId}">
728x90
'Framework > Spring' 카테고리의 다른 글
spring mybatis 특정 sql log 숨기기 (0) | 2023.08.04 |
---|---|
Interceptor에서 request url에 jsp 경로로 여러번 호출될때 (0) | 2023.08.04 |
톰캣 9.0 한글 깨짐 및 logback 한글깨짐 (0) | 2023.07.26 |
Spring 서버 to 서버 파일 전송 (0) | 2023.04.01 |
Spring RestTemplate으로 양식 데이터를 POST하는 방법 (0) | 2023.03.29 |