Hi Richard,
Yes, thank you, that was it! For anyone interested, here's what I got to:
[code]private void saveImageAsEventAsset(final MultipartFile multipartFile,
final ImageInfo imageInfo, final String prefix) {
MgnlContext.doInSystemContext(
new MgnlContext.VoidOp() {
@Override
public void doExec() {
try {
String fileExtension =
FilenameUtils.getExtension(multipartFile.getOriginalFilename());
String newFileName = prefix + "_" +
Calendar.getInstance().getTimeInMillis() + "." + fileExtension;
// "Navigate" to the assets folder node
AssetProviderRegistry assetProviderRegistry =
Components.getComponent(AssetProviderRegistry.class);
JcrAssetProvider jcrAssetProvider =
(JcrAssetProvider)
assetProviderRegistry.getProviderById(DamConstants.DEFAULT_JCR_PROVIDER_ID);
JcrFolder assetFolder = (JcrFolder)
jcrAssetProvider.getFolder("/event");
Node assetFolderNode = assetFolder.getNode();
// Create asset node
Node assetNode =
JcrUtils.getOrAddNode(assetFolderNode, newFileName, AssetNodeTypes.Asset.NAME);
assetNode.setProperty(AssetNodeTypes.Asset.ASSET_NAME, newFileName);
Session session =
MgnlContext.getJCRSession(DamConstants.WORKSPACE);
// Create asset resource node
Node assetResourceNode =
JcrUtils.getOrAddNode(assetNode, AssetNodeTypes.AssetResource.RESOURCE_NAME,
AssetNodeTypes.AssetResource.NAME);
assetResourceNode.setProperty(AssetNodeTypes.AssetResource.DATA,
session.getValueFactory().createBinary(multipartFile.getInputStream()));
assetResourceNode.setProperty(AssetNodeTypes.AssetResource.FILENAME,
newFileName);
assetResourceNode.setProperty(AssetNodeTypes.AssetResource.EXTENSION,
fileExtension);
assetResourceNode.setProperty(AssetNodeTypes.AssetResource.SIZE,
Long.toString(multipartFile.getSize()));
assetResourceNode.setProperty(AssetNodeTypes.AssetResource.MIMETYPE,
imageInfo.getMimeType());
assetResourceNode.setProperty(AssetNodeTypes.AssetResource.WIDTH,
Long.toString(imageInfo.getWidth()));
assetResourceNode.setProperty(AssetNodeTypes.AssetResource.HEIGHT,
Long.toString(imageInfo.getHeight()));
session.save();
} catch (Exception e) {
logger.debug("Could not save image as event asset",
e);
}
}
}
);
}[/code]
where the org.devlib.schmidt.imageinfo.ImageInfo parameter comes from a
previous validation that the uploaded MultipartFile is an image and the prefix
String is just something we needed in the asset name..
--
Context is everything:
http://forum.magnolia-cms.com/forum/thread.html?threadId=8a22aaec-21e8-487a-b0ee-319409bd4fdb
----------------------------------------------------------------
For list details, see http://www.magnolia-cms.com/community/mailing-lists.html
Alternatively, use our forums: http://forum.magnolia-cms.com/
To unsubscribe, E-mail to: <[email protected]>
----------------------------------------------------------------