import org.apache.commons.lang.StringUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.util.FileCopyUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.nio.charset.StandardCharsets;
/**
* @title
* @description :jar包读取resource下文件
* @author chenlf
*/
public class JarResourcePathResolverUtil {
/**
* @title downFile
* @description 文件下载
* @param: targetFile 生成的附件名称
* @param: fullPath 模板全路径
*/
public static void downFile(HttpServletResponse response, String targetFile, String fullPath) throws IOException {
InputStream input = null;
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
ByteArrayInputStream bais = null;
try {
response.setHeader("Content-Type", "application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename=" + toUTF8String(targetFile));
ClassPathResource classPathResource = new ClassPathResource(fullPath);
InputStream in = classPathResource.getInputStream();
byte[] bytes = FileCopyUtils.copyToByteArray(in);
bais=new ByteArrayInputStream(bytes);
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);
}
} catch (Throwable e) {
e.printStackTrace();
} finally {
if (null != bos) bos.close();
if (null != bis) bis.close();
if (null != bais) bais.close();
if (null != input) input.close();
}
}
}
springboot项目打成jar部署读取resource下文件问题解决
最新推荐文章于 2023-03-28 17:36:42 发布