首页 > 解决方案 > 如何通过 CSS 显示上传的图像

问题描述

我想通过 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);
        }
    }

然后我尝试获取文件的网络路径,但没有奏效:

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

有人可以帮助我或有其他方法吗?

标签: javacssjsf

解决方案


它为我创建了一个 servlet 并引用了文件位置。

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

在 css 中它看起来有点奇怪,但这样它工作了感谢@JasperdeVries 和 @Kukeltje 的回答


推荐阅读