我遇到图像文件夹的相对路径问题。 我想将图像列入文件夹,将其网址添加到列表中并在jsp中显示。 代码是这样的:
File carpetaImagenes = new File("../../../../../webapp/resources/img/maquinas/"+seleccion);
List<String> listaUrlImagenes = new ArrayList<String>();
/** Recorremos el directorio de imagenes de la maquina */
for(File imagen : carpetaImagenes.listFiles()){
String imageFileName = imagen.getName();
listaUrlImagenes.add(imageFileName);
}
&#34; carpetaImagenes.listFiles()&#34;的结果永远是空的。我想道路很糟糕。 在这里,您可以看到文件夹树的图像。课程进入&#34; controlador&#34;文件夹和图像进入&#34; webbapp / resources / img / maquinas / 1&#34;
我已经尝试了几条没有运气的路径。 非常感谢你。
答案 0 :(得分:0)
用户跟随方法getImageList,它应该工作
relativeFilePath = "img/maquinas/"+seleccion;
这是classpath的相对路径。我假设../../../../../webapp/resources是你实际部署的所有文件夹。
private List getImageList(String relativeFilePath) {
List<String> listaUrlImagenes = new ArrayList<String>();
try {
InputStream in = getResourceAsStream(relativeFilePath);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String resource;
while ((resource = br.readLine()) != null) {
listaUrlImagenes.add(resource);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return listaUrlImagenes;
}
private InputStream getResourceAsStream(String resource) {
final InputStream in = ClassLoader cl = this.getClass().getClassLoader().getResourceAsStream(
resource);
return in == null ? getClass().getResourceAsStream(resource) : in;
}
在 spring 以下应该可以正常工作。
ClassLoader cl = this.getClass().getClassLoader();
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(
cl);
Resource[] resources = resolver.getResources("classpath:/img/maquinas/"+seleccion);// or *.png
for (Resource resource : resources) {
listaUrlImagenes.add(resource.getFilename());
}
答案 1 :(得分:0)
终于工作!!
File carpetaImagenes = new ClassPathResource("imagenes/maquinas/"+seleccion).getFile();
File[] listaImagenes = carpetaImagenes.listFiles();