Comenzó bien, pero de repente la vista frontal de la imagen se veía así: 127.0.0.1 envió una respuesta no válida. Pero el backend no informa ningún error y los paquetes de red del front-end son normales.
Este error es muy extraño y solo se mostrará después de intentar manualmente detectar la impresión manual.
solución
Originalmente el código se veía así:
Simplemente cámbielo a lo siguiente: El motivo es que el tipo MIME no está configurado.
public void downloadAnnouncementFile(String path, HttpServletRequest request, HttpServletResponse response) {
try (FileInputStream fileInputStream = new FileInputStream(path)) {
String filename;
try {
filename = path.split("-----")[1];
} catch (Exception e) {
filename = path;
}
String contentType = determineContentType(filename);
response.setContentType(contentType);
response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + URLEncoder.encode(filename, "UTF-8"));
response.setHeader("Cache-Control", "private, no-store, max-age=0, must-revalidate");
IOUtils.copy(fileInputStream, response.getOutputStream());
response.flushBuffer();
} catch (IOException e) {
System.out.println("公告文件下载出问题了");
e.printStackTrace();
}
}
private String determineContentType(String filename) {
// 这里根据文件名后缀来确定文件的 MIME 类型
if (filename.endsWith(".jpg")) {
return "image/jpeg";
} else if (filename.endsWith(".pdf")) {
return "application/pdf";
} else if (filename.endsWith(".exe")) {
return "application/exe";
}
// 如果没有匹配到特定类型,可以返回一个默认的 MIME 类型
return "application/octet-stream";
}
encima.