File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.com.cmm.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
/**
*
* @author : 이호영
* @fileName : FileUtil.java
* @date : 2023.04.06
* @description : 파일 관련 유틸
* ===========================================================
* DATE AUTHOR NOTE
* ----------------------------------------------------------- *
* 2023.04.06 이호영 최초 생성
*
*
*
*/
public final class FileUtil {
/**
* @methodName : downLoad
* @author : 이호영
* @date : 2023.04.06
* @description : 파일 다운로드
* @param response
* @param fileInfo
* @param fileName
* @throws Exception
*/
public static void downLoad(HttpServletResponse response, String fileInfo, String fileNameP) throws Exception {
try {
String path = fileInfo; // 경로에 접근할 때 역슬래시('\') 사용
File file = new File(path);
String fileName = "";
if(StringUtils.isNotEmpty(fileNameP))
fileName = URLEncoder.encode(fileNameP,"UTF-8").replaceAll("\\+", "%20");
else
fileName = file.getName();
response.setHeader("Content-Disposition", "attachment;filename=" + fileName); // 다운로드 되거나 로컬에 저장되는 용도로 쓰이는지를 알려주는 헤더
FileInputStream fileInputStream = new FileInputStream(path); // 파일 읽어오기
OutputStream out = response.getOutputStream();
int read = 0;
byte[] buffer = new byte[1024];
while ((read = fileInputStream.read(buffer)) != -1) { // 1024바이트씩 계속 읽으면서 outputStream에 저장, -1이 나오면 더이상 읽을 파일이 없음
out.write(buffer, 0, read);
}
} catch (Exception e) {
throw new Exception("download error");
}
}
}