我正在尝试以编程方式在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.
为什么会发生这种情况?工作流会抛出错误,不会创建缩略图,也不会提取元数据。
答案 0 :(得分:2)
您可能缺少图像节点上的jcr:mimeType
属性。最好的方法是通过WebDAV上传图像并检查它创建的节点结构。以编程方式重现该结构应该有效。
答案 1 :(得分:2)
Asset asset = assetManager.createAsset(damPath, in, dataMimeType, false);
你的dataMimeType
是否正确?例如,它应该是"image/jpeg"
也可能有用:https://helpx.adobe.com/experience-manager/using/uploading-files-aem1.html