前端先发个请求:
window.open('路径+id');
后端:
@GetMapping("/")
public void imagePreview(HttpServletRequest request, HttpServletResponse response) throws Exception {
//主键id
String id = request.getParameter("id");
//入参非空判断
if (StringUtils.isBlank(id)) {
throw new BaseException("主键id不能为空");
}
log.info("查询事项附件信息详情的请求参数:{}", JSON.toJSON(id));
HbzjtItemFile hbzjtItemFile = fileInfoService.getById(id);
log.info("查询事项附件信息详情的返回结果:{}", JSON.toJSON(hbzjtItemFile));
//非空判断
if (null != hbzjtItemFile) {
//附件地址
String filePath = hbzjtItemFile.getFileSavePath() + "/" + hbzjtItemFile.getFileSaveName();
File file = new File(filePath);
response.setHeader("Content-Type", "image/jpeg");
if (hbzjtItemFile.getFileSaveExt().equals(".pdf") || hbzjtItemFile.getFileSaveExt().equals(".PDF")){
response.setHeader("Content-Type", "application/pdf");
}
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
byte b[] = new byte[1024];
int read;
try {
while ((read = bis.read(b)) != -1) {
bos.write(b, 0, read);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != bos) {
bos.close();
}
if (null != bis) {
bis.close();
}
}
}
}
ps:
https://www.runoob.com/http/http-content-type.html