2

プログラムで aem に画像をアップロードしようとしています。これは単純な jpeg または png です。手動でノードを作成しようとしましたが、AssetManager.createAsset も使用してみました。

イメージは作成されましたが、ワークフローが失敗しました。AEM ログでスタック トレースを取得します(もちろん、これらは完全なログではなく、ヘッダーのみです)。

com.day.cq.dam.commons.handler.StandardImageHandler getImage: error while reading image at path
com.day.cq.dam.commons.handler.StandardImageHandler failed to extract image using Layer will try the fallback
javax.imageio.IIOException: No decoder available to load the image
com.day.cq.dam.core.impl.gfx.CommonsGfxRenderer gfx: cannot get image for asset
com.day.cq.dam.commons.handler.StandardImageHandler getImage: error while reading image at path [/content/dam/path/to/image/original]: 
org.apache.commons.imaging.ImageReadException: Can't parse this format.

なぜこれが起こっているのですか?ワークフローでエラーがスローされ、サムネイルが作成されず、メタデータが抽出されません。

4

2 に答える 2

2

jcr:mimeType画像ノードのプロパティが欠落している可能性があります。WebDAV 経由で画像をアップロードし、これが作成するノード構造を確認するのが最善の方法です。その構造をプログラムで再現するとうまくいくはずです。

于 2015-03-10T10:08:27.677 に答える
2
Asset asset = assetManager.createAsset(damPath, in, dataMimeType, false);

あなたのはdataMimeType正しいですか?たとえば、"image/jpeg"

また役に立つかもしれません: https://helpx.adobe.com/experience-manager/using/uploading-files-aem1.html

于 2015-03-13T10:36:44.880 に答える