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: <user-list-unsubscr...@magnolia-cms.com>
----------------------------------------------------------------

Reply via email to