我正在用java编写一个web服务器,它可以传输高达2 2GB的文件。当我搜索原因时,我发现like java HttpServelet只允许我们将内容长度设置为int。由于整数的最大大小是2 2GB,所以当我使用response.setContentLength方法时,它可以工作到2 2gb。现在的问题是,默认response.setContentLength的参数是整数。所以它不接受长值作为参数。我已经尝试过response.setHeader("Content-Length",Long.toString(f.length();response.addHeader("Content-Length",Long.toString(f.length();但都不起作用。当内容长度为长值时,它总是无法添加内容长度。所以请给出任何HTTPServletResponse的工作解决方案,以便我可以将内容长度设置为长值。
发布于 2014-07-04 18:16:38
您也可以使用下面的示例代码。
long length = fileObj.length();
if (length <= Integer.MAX_VALUE)
{
response.setContentLength((int)length);
}
else
{
response.addHeader("Content-Length", Long.toString(length));
}
发布于 2012-07-13 16:56:51
试试这个:
long length = ...;
response.setHeader("Content-Length", String.valueOf(length))
希望这能帮到你。
发布于 2014-09-03 15:19:59
根本不需要设置。
只要让它使用分块传输模式,这是默认的。在这种情况下没有Content-Length报头。请参阅@BalusC在this question下的评论。
https://stackoverflow.com/questions/11466905
复制相似问题