zoukankan      html  css  js  c++  java
  • Jackrabbit 文件上传下载

    1. 在配置文件config.properties中: file.rmi=http://localhost:7000/rmi

    2. 下载 jackrabbit-standalone-2.10.1.jar,打开服务:java -jar jackrabbit-standalone-2.10.1.jar --port 7000

    3. 

    public class JackRabbitFileServiceImpl implements FileService {
    
        private static Repository repository;
    
        public static Session initSession(){  
            Session session=null;
            if(null==repository){
                try {
                    repository =  new URLRemoteRepository(ReadConfig.getValue("file.rmi"));
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            try {
                session=repository.login(new SimpleCredentials("admin","admin".toCharArray()));
            } catch (LoginException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (RepositoryException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return session;
        }
        
        @Override
        public String save(InputStream is, long filesize) {
            String fileId=KeyProvider.getPrimaryKey();
            try{
                Session session=initSession();
                Node root = session.getRootNode();
                String mimeType = "application/octet-stream";
                Node fileNode = root.addNode(fileId, "nt:file");
    
                Node resNode = fileNode.addNode("jcr:content", "nt:resource");
                resNode.setProperty("jcr:mimeType", mimeType);
                resNode.setProperty("jcr:encoding", "");
                resNode.setProperty("jcr:data", is);
    
                Calendar lastModified = Calendar.getInstance();
                resNode.setProperty("jcr:lastModified", lastModified);
    
                session.save();
                is.close();
                session.logout();
            }catch(Exception e){
                e.printStackTrace();
            }
            return fileId;
        }
    
        @Override
        public InputStream getFileById(String fileId) {
            InputStream is=null;
            try{
                Session session=initSession();
                Node root = session.getRootNode();
                if(root!=null){
                    NodeIterator filenodes = root.getNodes(fileId);
                    while (filenodes.hasNext()) {
        
                        Node n = filenodes.nextNode();
                        NodeIterator ni1 = n.getNodes();
                        while (ni1.hasNext()) {
        
                            Node n1 = ni1.nextNode();
        
                            if (n1.getName().equals("jcr:content")) {
                                is = n1.getProperty("jcr:data")
                                        .getStream();
                            }
                        }
                    }
                }
                session.logout();
            }catch(Exception e){
                e.printStackTrace();
            }
            return is;
        }
        
    }


  • 相关阅读:
    让requestAnimationFrame实现定时调用功能
    mapbox-gl添加下雪效果
    精细化道路webgl可视化
    https://b.tiles.mapbox.com/v4/mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v7/15/26919/13562.vector.pbf?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4M29iazA2Z2gycXA4N2pmbDZmangifQ.-g_vE53SD2WrJ6t
    交叉熵
    K-SVD字典学习及其实现(Python)
    最优方向法(MOD)
    基追踪及其实现
    内点法
    单纯形法MATALAB实现
  • 原文地址:https://www.cnblogs.com/PeterPan-luo/p/4546007.html
Copyright © 2011-2022 走看看