You are probably missing the jcr:mimeType property on the image node. Best might be to upload an image via WebDAV and check the node structure that this creates. Reproducing that structure programatically should work. https://stackoverflow.com/questions/28932407/aem-how-to-upload-image-programmatic...