我正在用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)
试试这个:
long length = ...;
response.setHeader("Content-Length", String.valueOf(length))
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助...
| 归档时间: |
|
| 查看次数: |
39789 次 |
| 最近记录: |