Browse Source

PDF 다운로드 추가

master
lkd9125 11 months ago
parent
commit
b383414b24
  1. 57
      src/main/java/com/palnet/biz/api/comn/controller/ComnController.java
  2. 3
      src/main/java/com/palnet/biz/config/WebSecurityConfig.java

57
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();
}
}
}

3
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

Loading…
Cancel
Save