diff --git a/src/main/java/com/palnet/biz/api/comn/controller/ComnController.java b/src/main/java/com/palnet/biz/api/comn/controller/ComnController.java new file mode 100644 index 0000000..19fbc62 --- /dev/null +++ b/src/main/java/com/palnet/biz/api/comn/controller/ComnController.java @@ -0,0 +1,57 @@ +package com.palnet.biz.api.comn.controller; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; + +import javax.servlet.http.HttpServletResponse; + +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@RestController +@Slf4j +@RequestMapping("/api/comn") +@RequiredArgsConstructor +public class ComnController { + + private final HttpServletResponse response; + + private final String BASE_URL = "/Users/igyeongdo/WokrSpace/files/3-1. 팔_부스디자인.pdf"; + + @GetMapping("/pdf-download") + public void pdfDownload(){ + + try (InputStream inputStream = new FileInputStream(new File(BASE_URL)); + OutputStream outputStream = response.getOutputStream()) { + + String fileOriName = "3-1. 팔_부스디자인.pdf"; + fileOriName = URLEncoder.encode(fileOriName, StandardCharsets.UTF_8); + + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); + response.setCharacterEncoding(StandardCharsets.UTF_8.name()); + response.setHeader("Content-Disposition", "attachment; filename=\"" + fileOriName + "\""); + + byte[] buffer = new byte[1024]; + int length; + + while ((length = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, length); + } + + } catch (IOException e) { + // 애플리케이션 요구에 맞게 예외 처리 + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/palnet/biz/config/WebSecurityConfig.java b/src/main/java/com/palnet/biz/config/WebSecurityConfig.java index 71e8336..a7f5c30 100644 --- a/src/main/java/com/palnet/biz/config/WebSecurityConfig.java +++ b/src/main/java/com/palnet/biz/config/WebSecurityConfig.java @@ -48,7 +48,8 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { "/webjars/**", /* swagger v3 */ "/v3/api-docs/**", - "/swagger-ui/**" + "/swagger-ui/**", + "/api/comn/pdf-download" // TODO :: 전시회를 위한 임시 허용 URL }; @Autowired