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