【问题标题】:Relative path to image folder java spring图像文件夹java spring的相对路径
【发布时间】:2018-01-27 11:48:18
【问题描述】:

我对图像文件夹的相对路径有疑问。 我想将图像列出到一个文件夹中,以将它们的 url 添加到列表中并在 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);  
    }  

“carpetaImagenes.listFiles()”的结果始终为空。我想这条路很糟糕。 在这里您可以看到文件夹树的图像。该类在“controlador”文件夹中,图像在“webbapp/resources/img/maquinas/1”中

我已经尝试了几条路径,但都没有运气。 非常感谢。

【问题讨论】:

    标签: java spring hibernate jsp path


    【解决方案1】:

    用户遵循 getImageList 方法,它应该可以工作

    relativeFilePath = "img/maquinas/"+seleccion;
    

    这是类路径的相对路径。我假设 ../../../../../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;
    }
    

    春天下面应该可以工作。

    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());
    }
    

    【讨论】:

    • 我试过spring方式,还是不行。图片进入 src/webapp/resources/img/maquinas/1
    • 其他选项呢?
    • 不起作用。方法调用处的空指针。我认为相对路径是错误的
    • 你试过去掉那个反斜杠吗? “类路径:img/maquinas/”
    【解决方案2】:

    终于开工了!!

    File carpetaImagenes = new ClassPathResource("imagenes/maquinas/"+seleccion).getFile();
        File[] listaImagenes = carpetaImagenes.listFiles();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 2013-01-11
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 2012-01-28
      • 2013-10-29
      相关资源
      最近更新 更多