我正在使用带有Richfaces的JSF开发简单的应用程序。我要上传文件夹(仅选择文件夹)。
我尝试了 t:inputFileUpload 和 rich:fileUpload 。 但是这两个组件仅是支持文件。不支持选择文件夹。
可以选择文件夹。
帮我。提前致谢
标准HTML <input type="file">已经无法做到这一点。因此<t:inputFileUpload>,仅能准确呈现HTML元素的毫无疑问。此外,由于安全限制,Flash也不允许选择文件夹。因此,这<rich:fileUpload>也是毫无疑问的。
<input type="file">
<t:inputFileUpload>
<rich:fileUpload>
最好的选择是使用Java小程序,该小程序使用Swing JFileChooser,它允许您选择目录。然后,您可以编写一些Java代码来收集该文件夹中的所有文件,然后通过URLConnection或HttpClient将其上传到服务器端。然后,您只需以普通的普通HTML / JS方式将该小程序嵌入到JSF页面中即可。相反,重新发明轮子的小程序,你也可以去为现有的第三方小程序像JumpLoader或JUpload。两者都支持上传整个目录。
JFileChooser
URLConnection
最后,您必须使用Apache Commons FileUpload将其与普通香草Servlet结合在一起,以分析来自applet的文件上传请求。为了使其与JSF交互,您可以在会话中存储一些唯一的属性,或者使用在servlet范围内也可用的会话范围内的JSF托管bean。我不确定JumpLoader或JUpload是否支持它,但是从技术上讲,可以让小程序通过JavaScript更新页面(这允许JS / Ajax通过applet-JSF进行通信)。
不,没有想到可以完成相同工作的现有第三方JSF组件。