如何通过CSS显示上传的图片

时间:2018-12-07 08:29:15

标签: java css jsf

我想通过primefaces:fileUpload上传图像,然后将其显示在div上,例如使用css。
我已经可以将图像保存在服务器上:

public void upload() throws IOException, URISyntaxException {
        if (logo != null) {
            File fileImage = new File(System.getProperty("jboss.server.data.dir"), "uploads.png");
            BufferedImage img = ImageIO.read(new ByteArrayInputStream(logo.getContents()));
            if (fileImage.exists()) {
                fileImage.delete();
            }
            ImageIO.write(img, "png", fileImage);
        }
    }

然后我尝试获取该文件的Web路径,但这没有用:

public String getImagePath(){
        File fileImage = new File(System.getProperty("jboss.server.data.dir"), "uploads.png");
        Set<String> set = FacesContext.getCurrentInstance().getExternalContext().getResourcePaths(fileImage.getAbsolutePath());
        return set.iterator().next();
    }

我需要这样的东西:

  

/ewarehouse/javax.faces.resource/dynamiccontent.properties.xhtml?ln=primefaces&v=6.2&v=6.2&pfdrid=f52e395e4f38c09a1990e8f9d0c5806d&pfdrt=sc&pfdrid_c=true

有人可以帮助我还是有其他方法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

对我来说,创建一个servlet并引用文件位置是可行的。

background-image: url('#{'/'}ewarehouse#{'/'}images//dynamic#{'/'}?file=uploads.png')

在CSS中,看起来有点怪异,但这种方式有效了感谢@JasperdeVries和@Kukeltje的回答