java - 如何将图像存储到 jackrabbit 并将这些图像传递到 HTML 页面?

标签 java jackrabbit jcr

如何将图像存储到 jackrabbit 并将这些图像传递到 HTML 页面? 前任。如果用户将从一个 HTML 页面上传多个图像,那么他应该能够在需要时在下一个 html 页面或任何其他页面中看到所有这些图像

最佳答案

就是这样:

 public class JackRabbitServiceImpl {

        Repository repository = new TransientRepository(); 

        public JackRabbitServiceImpl() throws Exception{
            Session session = repository.login( 
                    new SimpleCredentials("username", "password".toCharArray()));
            try{
                InputStream stream = new BufferedInputStream(JackRabbitServiceImpl.class.getResourceAsStream("red_rose.jpg"));
                Node folder = session.getRootNode(); 
                Node file = folder.addNode("redrose.jpg","nt:file");
                Node content = file.addNode("jcr:content","nt:resource");
                Binary binary = session.getValueFactory().createBinary(stream);
                content.setProperty("jcr:data",binary);
                content.setProperty("jcr:mimeType","image/gif");
                session.save(); 
            }finally{
                session.logout(); 
            }
        }

        public byte[] getContentRose() throws Exception{
            Session session = repository.login( 
                    new SimpleCredentials("username", "password".toCharArray()));
            Node folder = session.getRootNode(); 
            Node file=folder.getNode("redrose.jpg");
            Node content=file.getNode("jcr:content");
            String path = content.getPath();
            Binary bin = session.getNode(path).getProperty("jcr:data").getBinary();
            InputStream stream = bin.getStream();
            return IOUtils.toByteArray(stream);
        }

    }

servlet

public class TestJackRabbitCdn extends HttpServlet {

    /**
     * 
     */
    private static final long serialVersionUID = 4158924623219324725L;
    JackRabbitServiceImpl service=null;
    @Override
    public void init(){
        try {
            service=new JackRabbitServiceImpl();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,
    ServletException {
        response.setContentType("image/gif");
        try {
            response.getOutputStream().write(service.getContentRose());
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        response.getOutputStream().flush();
    }

}

关于java - 如何将图像存储到 jackrabbit 并将这些图像传递到 HTML 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24394609/

相关文章:

Java自定义Path2D

java - 如何使用 Retrofit 为所有请求定义一个 Header?

jquery - Ajax 调用在 sling 中移动文件

linux - JCR/Jackrabit/Derby - 在 Linux 上恢复版本时使用二进制数据的 IO 速度慢

java - 如何通过uuid获取文档

aem - 在CQ的cq :IncludeClientLib,中,theme和categories属性有什么区别?

java - 操作栏布局看起来不正确

java - 什么是NullPointerException,我该如何解决?

java - 无法冒充 - Jackrabbit

java - 将 blob 从数据库迁移到 jackrabbit 中的文件系统