我想通过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
有人可以帮助我还是有其他方法可以做到这一点?
答案 0 :(得分:0)
对我来说,创建一个servlet并引用文件位置是可行的。
background-image: url('#{'/'}ewarehouse#{'/'}images//dynamic#{'/'}?file=uploads.png')
在CSS中,看起来有点怪异,但这种方式有效了感谢@JasperdeVries和@Kukeltje的回答