2013-02-13 74 views
3

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

属性“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中解决这个问题?

+0

那么[此](http://blogs.adobe.com/dmcmahon/2012/08/01/cq5-loading-an-image-from-a-resource-in-a-custom-图像渲染器/)?它有帮助吗? – 2013-02-13 21:31:20

回答

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();