前端根据HttpServletResponse在线显示文件
时间: 2023-10-16 07:22:10 浏览: 31
可以使用以下代码实现前端在线显示 HttpServletResponse 返回的文件:
```java
@RequestMapping(value = "/downloadFile", method = RequestMethod.GET)
public void downloadFile(HttpServletRequest request, HttpServletResponse response) {
String filePath = "路径/文件名"; // 文件路径
try {
File file = new File(filePath);
if (file.exists()) {
// 设置响应头
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "inline;filename=" + file.getName());
// 读取文件并输出到response
FileInputStream fis = new FileInputStream(file);
OutputStream os = response.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
os.flush();
os.close();
fis.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
```
其中,设置 `response.setContentType("application/pdf")` 可以根据实际需求设置为对应的文件类型,如 `application/vnd.ms-excel` 表示 Excel 文件,`image/jpeg` 表示 JPEG 图片文件等。设置 `response.addHeader("Content-Disposition", "inline;filename=" + file.getName())` 可以设置文件名,并将文件在浏览器中以在线方式显示。