61 lines
2.4 KiB
Java
61 lines
2.4 KiB
Java
package com.dbnt.kcscbackend.file;
|
|
|
|
import com.dbnt.kcscbackend.admin.logs.service.AdminLogsService;
|
|
import com.dbnt.kcscbackend.auth.entity.LoginVO;
|
|
import com.dbnt.kcscbackend.config.util.ClientUtils;
|
|
import com.dbnt.kcscbackend.file.entity.TnAttachFile;
|
|
import com.dbnt.kcscbackend.file.service.FileService;
|
|
import com.dbnt.kcscbackend.standardCode.service.StandardCodeService;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
|
import org.springframework.util.FileCopyUtils;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.io.*;
|
|
|
|
@RestController
|
|
@RequiredArgsConstructor
|
|
@RequestMapping("/file")
|
|
public class FileController {
|
|
|
|
private final FileService fileService;
|
|
private final AdminLogsService adminLogsService;
|
|
|
|
@RequestMapping(method = RequestMethod.GET, value = "/download")
|
|
public void download(HttpServletRequest request, HttpServletResponse response, TnAttachFile tnAttachFile) throws Exception{
|
|
tnAttachFile = fileService.selectTnAttachFile(tnAttachFile);
|
|
fileDownload(request, response, tnAttachFile);
|
|
}
|
|
|
|
@RequestMapping(method = RequestMethod.GET, value = "/standardCode-download")
|
|
public void standardCodeDownload(HttpServletRequest request, HttpServletResponse response, TnAttachFile tnAttachFile, String userId) throws Exception{
|
|
tnAttachFile = fileService.selectTnAttachFile(tnAttachFile);
|
|
adminLogsService.insertFileLog(tnAttachFile, userId, ClientUtils.getRemoteIP(request));
|
|
fileDownload(request, response, tnAttachFile);
|
|
}
|
|
|
|
private void fileDownload(HttpServletRequest request, HttpServletResponse response, TnAttachFile tnAttachFile){
|
|
if(tnAttachFile != null){
|
|
BufferedInputStream in;
|
|
BufferedOutputStream out;
|
|
try {
|
|
File file = new File(tnAttachFile.getFilePath());
|
|
|
|
ClientUtils.setDisposition(tnAttachFile.getFileOldName(), request, response);
|
|
in = new BufferedInputStream(new FileInputStream(file));
|
|
out = new BufferedOutputStream(response.getOutputStream());
|
|
FileCopyUtils.copy(in, out);
|
|
out.flush();
|
|
if(out!=null) out.close();
|
|
if(in!=null )in.close();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
}
|