Springboot - 파일 다운로드(백엔드)
3231 단어 ThymeleafSpringBoot
//
#file.uploadFolder=/root/uploadFiles/
//
file.uploadFolder=d://uploadFiles/
//
spring.servlet.multipart.max-file-size=50Mb
spring.servlet.multipart.max-request-size=50Mb
Controller:
@Controller
@RequestMapping("/file")
public class FileController {
@Autowired
private HttpServletRequest request;
@Autowired
private FileService fileService;
@Value("${file.uploadFolder}")
private String uploadFolder;
//
@RequestMapping("/downfile/{id}")
public String downloadFile(HttpServletRequest request, HttpServletResponse response, @PathVariable String id) throws Exception {
FileSource filesource = fileService.findbyid(id);
String fileName = filesource.getFilename();// ,
if (fileName != null) {
//
String realPath = uploadFolder;
File file = new File(realPath , fileName);
if (file.exists()) {
response.setContentType("application/force-download");//
//response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);//
//response.setContentType("multipart/form-data;charset=UTF-8"); UTF-8, 。
response.setHeader("Content-Disposition", "attachment;fileName="+ new String(fileName.getBytes("GB2312"),"ISO-8859-1"));
byte[] buffer = new byte[1024];
FileInputStream fis = null;
BufferedInputStream bis = null;
try {
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
OutputStream os = response.getOutputStream();
int i = bis.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
System.out.println(" ");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
return null;
}
FileServiceImpl:
@Service
public class FileServiceImpl implements FileService {
@Autowired
private FileRepository fileRepository;
/**
*
*
* @author MengMeng
* @param id ID
* @Date Created date: 2018/10/25
* @return FileSource
*/
@Override
public FileSource findbyid(String id) {
// TODO Auto-generated method stub
FileSource filesource = fileRepository.findByFileId(id);
return filesource;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thymeleaf에서 th:if와 th:insert를 조합하여 사용할 때의 주의여러 번 같은 실패를 해 버리므로 계명을 겸하여 기사에 남겨두기로 한다. 실패 사례 예를 들어, 가격이 존재하는 경우에만 특정 HTML을 삽입하려는 경우, 그만 다음과 같은 기술을 해 버린다. productList....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.