获取加载到cq5中的图像组件中的图像的文件大小?

时间:2013-02-13 20:49:06

标签: java jsp cq5

我正在开发一个cq5项目,我需要将通过图像组件上传的图像大小限制为大约150kb。我通过复制,粘贴和重命名默认图像组件创建了一个名为“customimage”的自定义图像组件。

属性“fileReference”返回文件(for instance "/content/dam/myProject/emea/logo.jpg")的相对路径。绝对路径没有属性。现在我编写代码来检查customimage.jsp文件中的文件大小我有一些看起来像

的代码
String path = (String)properties.get("fileReference","");

File file = new File(path);

double file_size = file.length();

问题是,无论我传递给组件的图像是什么,file_size都返回0.0。该项目是在html 4中,所以我无法利用html5添加的漂亮的javascript文件I / O,因此必须通过java完成。我究竟做错了什么?还有另一种方法我应该在cq5中解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

fileReference 属性将为您提供jcr repo中图像的路径,可能是dam,而不是文件系统上的路径,这意味着您调用的File构造函数将无法正常工作。

未经测试,但以下内容可能有效。

Resource r = resourceResolver.getResource(path);
Asset a = r.adaptTo(Asset.class);
Rendition rnd = a.getOriginal();
long size = rnd.getSize();