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を返します。プロジェクトはhtml4であるため、追加された気の利いたjavascriptファイルI / Oを利用できないためhtml5、javaを介して実行する必要があります。私は何が間違っているのですか?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 に答える