gpt4 book ai didi

tomcat - 使用 Tomcat servlet 下载文件下载不完整

转载 作者:行者123 更新时间:2023-11-28 22:11:12 26 4
gpt4 key购买 nike

我有一个 servlet,可以将文件下载到请求的客户端。现在当用户请求下载一个xml文件时。它将开始下载,完成后文件看起来不完整。它在文件末尾缺少一些数据。

我的代码如下:

File file = new File(location);
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment;filename=" + fileName);

FileInputStream fileIn = new FileInputStream(file);
OutputStream out = response.getOutputStream();

byte[] outputByte = new byte[4096];
int length = -1;

//copy binary contect to output stream
while((length = fileIn.read(outputByte)) > 0)
{
out.write(outputByte);
}

fileIn.close();
out.flush();
out.close();

我的代码在哪里无法下载完整的 xml 文件?

最佳答案

像这样更改您的 while 循环。缓冲区大小为 4096。您应该只使用在之前的 read() 中读取的长度。

  //copy binary contect to output stream
while((length = fileIn.read(outputByte)) > 0)
{
fileOut.write(outputByte, 0, length);
}

但是,您应该使用 Guava ByteStreams为了这。您可以找到其他支持此功能的库。

关于tomcat - 使用 Tomcat servlet 下载文件下载不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44799469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com