// 在这里设置HTTP响应头部、类型等相关信息
// 在这里使用response.getOutputStream().write()方法将文件数据写入响应输出流
// 最后记得添加关闭文件输入流和刷新响应输出流的逻辑
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;
while ((bytesRead = fis.read(buffer)) != -1) {
response.getOutputStream().write(buffer, 0, bytesRead);
}
response.setStatus(HttpServletResponse.SC_OK); // 发送200状态码
/*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());*/
fis.close();
response.getOutputStream().flush();
long endTime = System.currentTimeMillis();
long duration = endTime - startTime;
System.out.println("下载耗时: " + duration + "毫秒");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的输出流中