PDF预览
/**
* pdf预览
* @param response
*/
@RequestMapping(value = "/preview")
public void showPdf(HttpServletResponse response) {
try {
//String filePath = this.getClass().getClassLoader().getResource("../../static/pdf/readme.pdf").getPath();
String filePath = "E:\\歌\\2022_420300_1716900370656\\监督\\2_关于加强取的通知.pdf";
File file = new File(filePath);
FileInputStream fileInputStream = new FileInputStream(file);
response.setHeader("Content-Type", "application/pdf");
OutputStream outputStream = response.getOutputStream();
IOUtils.write(IOUtils.toByteArray(fileInputStream), outputStream);
} catch(Exception e) {
e.printStackTrace();
}
}
参考文章
视频预览
@GetMapping("/download")
public void download(HttpServletResponse response) throws IOException {
File file = new File("/Users/zxk/Movies/1.2G.mp4");
response.setContentType("video/mp4;charset=utf8");
//设置下载文件名
response.setHeader("Content-Disposition", "attachment;filename=" + file.getName());
//中文乱码处理
//response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(file.getName(), "UTF-8") );
//网页直接播放
response.setHeader("Content-Disposition", "inline");
//下载进度
response.setContentLengthLong(file.length());
try (InputStream inputStream = new FileInputStream(file);
OutputStream outputStream = response.getOutputStream()
) {
IOUtils.copy(inputStream, outputStream);
}
}
参考文章
图片预览
@ApiOperation("访问文件")
@GetMapping("/download/{name}")
public void getImage(HttpServletResponse response, @PathVariable("name") String name) throws IOException {
//动态获取图片存放位置
// String path = getUploadPath();//获取当前系统路径
String path = upload;
String imagePath = path + File.separator + name;
if (!new File(imagePath).exists()) {
return;
}
if (name.endsWith("jpg") || name.endsWith("png") || name.endsWith("gif") || name.endsWith("jpeg")) {
//预览时不需设置Content-Disposition
response.setContentType("image/jpeg;charset=utf-8");//图片
}else {
//下载
response.setContentType("application/octet-stream");//文件
response.setHeader("Content-Disposition", "inline; filename=" + URLEncoder.encode(name, "UTF-8"));
}
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(Files.readAllBytes(Paths.get(path).resolve(name)));
outputStream.flush();
outputStream.close();
}
参考文章