
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 com.takensoft.common.file.web;
import com.takensoft.common.file.service.FileService;
import com.takensoft.common.file.vo.FileVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.MultipartRequest;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
* @author : 방선주
* @since : 2024.05.23
*
* File 관련 컨트롤러
*/
@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping(value="/sys/file")
public class FileController {
private final FileService fileService;
/**
* @author 방선주
* @since 2024.05.21
* @param fileId
* @return
* @throws Exception
*
* 게시판 첨부 파일 다운로드
*/
@PostMapping("/fileDownload.json")
public void fileDownload(@RequestBody int fileId, HttpServletResponse response) throws Exception {
// 파일 정보 조회
FileVO file = fileService.fileSelectOne(fileId);
File downloadFile = null;
// 받은 파일 정보로 파일 다운로드 생성
if(file != null){
String filePath = file.getAbsltPath();
downloadFile = new File(filePath);
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(file.getFileNm(), "UTF-8") + "\"");
response.setHeader("Content-Transfer-Encoding", "binary");
try (OutputStream out = response.getOutputStream(); FileInputStream fis = new FileInputStream(downloadFile)) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
}
}
}
@PostMapping("/postImageUpload.file")
public Map<String, Object> handleFileUpload(@RequestPart("upload") MultipartFile file) throws Exception {
Map<String, Object> response = new HashMap<>();
String uploadPath = fileService.editorUploadImg(file);
response.put("upload", true);
response.put("url", uploadPath);
return response;
}
}