AEM - 如何以编程方式上传图像

时间:2015-03-08 21:59:09

标签: image upload cq5 aem dam

我正在尝试以编程方式在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.

为什么会发生这种情况?工作流会抛出错误,不会创建缩略图,也不会提取元数据。

2 个答案:

答案 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