Springboot项目打成jar包之后resources目录下的资源无法获取的问题
代码
package com.example.demo.controller;
import org.springframework.core.io.ClassPathResource;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
/**
* @Description:
* @Author:
* @Date:Create in 16:04 2020/12/16
* @Modified:
*/
@RestController
@RequestMapping("/download")
public class DownLoadController {
@ResponseBody
@RequestMapping(value = "/word")
public Object downloadOFDReader(HttpServletResponse response, HttpServletRequest request) throws IOException {
InputStream input = null;
String fileName = "userPage.docx";
String path = "static/word/"+fileName;
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
ByteArrayInputStream bais = null;
try {
ClassPathResource resource = new ClassPathResource(path);
input = resource.getInputStream();
byte[] bdata = FileCopyUtils.copyToByteArray(input);
System.out.println("++++++++++++"+bdata.length);
// 配置文件下载
//response.setContentType("application/x-msdownload;");
response.setHeader("Content-disposition", "attachment; filename=" + fileName);
response.setHeader("Content-Length", String.valueOf(bdata.length));
// 实现文件下载
byte[] buffer = new byte[1024];
bais=new ByteArrayInputStream(bdata);
bis = new BufferedInputStream(bais);
bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length)))
bos.write(buff, 0, bytesRead);
System.out.println("success");
bos.close();
bis.close();
bais.close();
input.close();
} catch (Exception e) {
e.printStackTrace();
}finally {
if(bos != null){
bos.close();
}
if(bis != null){
bis.close();
}
if(bais != null){
bais.close();
}
if(input != null){
input.close();
}
}
return null;
}
}
主要是将InputStream转换成了byte[],不然会一直卡着,没能找到原因,抱歉!!