org.apache.catalina.connector.clientAbortException:java.io.IOException: el software de su host canceló una conexión establecida.

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.

Guess you like

Origin blog.csdn.net/LYXlyxll/article/details/132289191