如何在Java web处理程序中获得本地文件大小?
如何在web处理程序中获取本地文件长度
@RequestMapping(value = "xxx.iso", method = { RequestMethod.HEAD })
public void doChunkedHEAD(HttpServletResponse response) {
try {
URL fileUrl = servletContext.getResource(filename);
File fileObj = new File(fileUrl.toString());
long fileSize = fileObj.length();
response.setHeader("Content-Length", String.valueOf(fileSize));
} catch (Exception e) {
}
}
fileSize
总是0。而fileUrl
是这样的:
file:/C:/xxx.iso
和fileObj.exists()
返回false
。但该文件确实以C:\xxx.iso
的形式存在
如果使用绝对局部路径,则可以获得大小:
@RequestMapping(value = "xxx.iso", method = { RequestMethod.HEAD })
public void doChunkedHEAD(HttpServletResponse response) {
File fileObj = new File("C:\\xxx.iso");
long fileSize = fileObj.length();
response.setHeader("Content-Length", String.valueOf(fileSize));
}
为什么
我使用的是Java 1.7.76
# 1 楼答案
我用下面的代码做到了:
但我仍然不知道为什么我不能用
URL
来代替