3

我正在处理一个 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.xml 来完成。我究竟做错了什么?我应该在cq5中解决这个问题的另一种方法吗?

4

1 回答 1

3

fileReference属性将为您提供jcr 存储库中图像的路径,可能是大坝,而不是文件系统上的路径,这意味着您正在调用的 File 构造函数将不起作用。

未经测试,但以下内容可能会起作用。

Resource r = resourceResolver.getResource(path);
Asset a = r.adaptTo(Asset.class);
Rendition rnd = a.getOriginal();
long size = rnd.getSize();
于 2013-02-14T05:29:52.757 回答