File file = new File(filePath);
if (file.exists()) {
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=\"" + file.getName() + "\"");
response.setContentLength((int) file.length());
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[1024];
int bytesRead;
ByteArrayOutputStream jsonBuffer = new ByteArrayOutputStream(); // 创建一个字节数组输出流用于存储JSON数据
while ((bytesRead = fis.read(buffer)) != -1) {
response.getOutputStream().write(buffer, 0, bytesRead);
}
JSONObject errorResponse = new JSONObject();
errorResponse.put("status",200);
errorResponse.put("message", "File download complete.");//e.getMessage()
response.setContentType("application/json");
//response.getWriter().write(errorResponse.toString());
jsonBuffer.write(errorResponse.toString().getBytes()); // 将JSON数据写入缓冲区
fis.close();
response.getOutputStream().flush();
response.setStatus(96587); // 发送200状态码 HttpServletResponse.SC_OK
response.getOutputStream().write(jsonBuffer.toByteArray()); // 将缓冲区的数据写入response的输出流中
用这个代码,可以不报错的情况下,下载文件。可是这个json,写到哪里去了呢?postman、浏览器测试,都看不到这个json。到哪里去了?
【 在 PaoloMaldini 的大作中提到: 】
: 你咋从服务端主动下发到客户端?
:
--
FROM 120.242.238.*