如何在java的http头中将内容长度设置为long值?

Gho*_*osh 14 java

我正在用java编写一个web服务器,它正在传输高达2GB的文件.当我搜索原因时,我发现java HttpServelet只允许我们将内容长度设置为int.由于整数的最大大小为2GB,因此当我使用response.setContentLength方法时,它的工作正常可达2gb.现在的问题是默认的response.setContentLength有整数参数.所以它没有把长值作为参数.我已经尝试过response.setHeader("Content-Length",Long.toString(f.length())); response.addHeader("Content-Length",Long.toString(f.length())); 但没有任何工作.总是在长值时无法添加内容长度.所以请为HTTPServletResponse提供任何有效的解决方案,以便我可以将内容长度设置为long值.

小智 11

您还可以使用以下示例代码.

long length = fileObj.length();

if (length <= Integer.MAX_VALUE)
{
  response.setContentLength((int)length);
}
else
{
  response.addHeader("Content-Length", Long.toString(length));
}
Run Code Online (Sandbox Code Playgroud)


Yur*_*nyy 5

试试这个:

long length = ...;
response.setHeader("Content-Length", String.valueOf(length))
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助...