解析图像目录

时间:2012-01-12 00:46:40

标签: java playframework

我正在使用play framework,我在playapps.net上部署的应用程序出了问题,我没有本地化。 这是他的代码:

public static void image(Long idCategorieProject, Long idImage)
{

    CategorieProject categorieproject = CategorieProject.findById(idCategorieProject);
    List<Categorie> categories = Categorie.all().fetch();

    // SMALL IMAGES
    List<String>smallImages = null;
    try
    {
        File dirSmall = new File("public/images/projects/"+idCategorieProject+"/small/");
        smallImages = new ArrayList();
        File[] smallImageFiles = dirSmall.listFiles();

        for (int i = 0; i < smallImageFiles.length; i++) {
            smallImages.add(smallImageFiles[i].getName());
        }

    } catch (Exception e) {
        System.out.println(e);
    }

    // FULL IMAGE
    List<String>fullImages = null;
    try
    {
        File dirSmall = new File("public/images/projects/"+idCategorieProject+"/full/");
        fullImages = new ArrayList();
        File[] fullImageFiles = dirSmall.listFiles();

        for (int i = 0; i < fullImageFiles.length; i++) {
            if (i == idImage)
                fullImages.add(fullImageFiles[i].getName());
        }

    } catch (Exception e) {
        System.out.println(e);
    }

    render(lang, categorieproject, categories, fullImages, smallImages);
}

Localy,我的图像数组不是null,我可以显示它们,但是使用部署版本,似乎数组是null。是否有另一种解析图像目录的解决方案?

2 个答案:

答案 0 :(得分:0)

您正在使用文件的相对路径,这可能会导致问题,具体取决于执行应用程序的位置。

使用核心Play中可用的VirtualFile(play.vfs.VirtualFile)对象并使用fromRelativePath(String path)方法,您会更安全。

有关详细信息,您可以查看此帖子 - How to access a resource file using relative path in play framework project?,或只是在堆栈溢出中搜索VirtualFile [Playframework]

答案 1 :(得分:0)

如果在部署应用程序时列出文件时出现问题,而不是在本地运行时出现问题,那么可能是权限问题。