Java 使用Tomcat下载扩展时出现问题

Java 使用Tomcat下载扩展时出现问题,java,tomcat,Java,Tomcat,我正在看一段代码,它提供了一个使用Tomcat接收文件的链接。但是,如果附加了扩展名,则会发生错误。并非所有的扩展,但只有当连接mp3扩展时,才会正常下载,当连接其他扩展时,才会发生错误。即使没有任何扩展,它也可以工作。我认为这个代码有问题。我希望您能告诉我是否有错误代码:(请说明客户端类来自何处,如果存在,请添加相应的库标记。请说明客户端类来自何处,如果存在,请添加相应的库标记。 static void copyStream(final InputStream inputStream, fin

我正在看一段代码,它提供了一个使用Tomcat接收文件的链接。但是,如果附加了扩展名,则会发生错误。并非所有的扩展,但只有当连接mp3扩展时,才会正常下载,当连接其他扩展时,才会发生错误。即使没有任何扩展,它也可以工作。我认为这个代码有问题。我希望您能告诉我是否有错误代码:(

请说明客户端类来自何处,如果存在,请添加相应的库标记。请说明客户端类来自何处,如果存在,请添加相应的库标记。
static void copyStream(final InputStream inputStream, final OutputStream outputStream, final Client client) throws IOException {

    if (client.getReqType() == ReqType.STREAMING_PARTIAL || client.getRange() != null) {
        copyPartialStream(inputStream, outputStream, client);
        return;
    }

    Site site = client.getSite(); 
    Qos qos = new Qos(site); 
    String siteId = site.getSiteId();

    byte[] buff = new byte[BUFF_SIZE]; // 1024*32
    int readBytes = 0; 

    try (BufferedInputStream is = new BufferedInputStream(inputStream, BUFF_SIZE)) { 
        try (BufferedOutputStream out = new BufferedOutputStream(outputStream, BUFF_SIZE)) {
            while ((readBytes = is.read(buff)) > -1) { 
                long startChunk = System.currentTimeMillis();
                
                out.write(buff, 0, readBytes);
                client.addSendSize(readBytes);
                KHttp.increaseTrafficLog(siteId, readBytes);
                
                long elapsedChunk = System.currentTimeMillis() - startChunk;
                client.addSendMils(elapsedChunk);
                
                if (qos.pause(client)) {
                    long sleepMillis = qos.getSleepMillis(client, readBytes, elapsedChunk);
                    if (sleepMillis > 0) {
                        qos.sleep(sleepMillis);
                        client.addSendMils(sleepMillis);
                    }
                }
            }
        }
    } catch (IOException e) {
        client.setAbort(true);
    }
}