我正在尝试将文件上传到我的本地计算机,但现在我想让用户选择一个目录或创建一个新目录以保存上传的文件,任何想法如何在Play框架中实现这一点。
答案 0 :(得分:0)
您真的想要从服务器向用户显示目录列表吗?似乎是一个非常糟糕的计划。我也没有看到任何可以接受的用例,为什么要困扰用户存储它?保存后,只需告诉他链接即可。
无论如何,你可以用Java创建目录(如果你使用Play-Java)没问题:
File dir = new File("folderName");
dir.mkdir();
如果您坚持要求用户在哪个文件夹中保存该文件,我会建议您:
在Play项目之外的某处创建一个名为uploaded
的文件夹。在此文件夹中,用户可以将文件上传到他自己的文件夹中,只显示一个输入字段,用户可以在其中输入“foldername”。
注意上传后的文件不会直接在Play上播放,因为Play启动时图像不存在(在类路径中)。因此,上传的文件夹应由Apache或任何其他服务器管理。
修改强> 如果要列出所有文件,可以使用以下内容:
File[] listOfFiles = folder.listFiles(); // folder is created folder
for (File file : listOfFiles) {
if (file.isFile()) {
System.out.println(file.getName());
// here you can build array of strings (filenames)
// that can be passed to your view
}
}
然后将新的字符串数组或listOfFiles
传递给您的视图。
return ok(list.render(listOfFiles));