我正在使用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。是否有另一种解析图像目录的解决方案?
答案 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)
如果在部署应用程序时列出文件时出现问题,而不是在本地运行时出现问题,那么可能是权限问题。