如何在Web应用程序中上传文件夹

时间:2011-10-21 02:28:59

标签: jsp jsf richfaces

我正在使用带有richfaces的JSF开发简单的应用程序。我想上传文件夹(仅限选择文件夹)。

我试过了, t:inputFileUpload rich:fileUpload
但这两个组件都只是支持文件。不支持选择文件夹。

可以选择文件夹。

帮助我。 提前谢谢

1 个答案:

答案 0 :(得分:5)

标准HTML <input type="file">已经无法做到。因此,只提供HTML元素的<t:inputFileUpload>是不可能的。此外,由于安全限制,Flash也不允许选择文件夹。因此,<rich:fileUpload>也是不可能的。

您最好的选择是使用一个Java小程序,它使用Swing JFileChooser来允许您选择一个目录。然后,您可以编写一些Java代码来收集该文件夹中的所有文件,并通过URLConnectionHttpClient将其上传到服务器端。然后你就可以通过普通的HTML / JS方式将这个applet嵌入到你的JSF页面中。您也可以使用JumpLoaderJUpload这样的现有第三方小程序,而不是重新发明小程序轮。两者都支持上传整个目录。

最后,您要将它与一个普通的servilla servlet结合使用Apache Commons FileUpload来解析来自applet的文件上传请求。要让它与JSF交互,您可以在会话中存储一些唯一属性,或者使用会话范围内的JSF托管bean,该bean也可以在servlet中使用。我不确定JumpLoader或JUpload是否支持它,但技术上可以让applet通过JavaScript更新页面(允许通过JS / Ajax进行applet-JSF通信)。

不,没有现成的第三方JSF组件可以完成同样的工作。