一尘不染

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

jsp

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

我尝试了 t:inputFileUploadrich:fileUpload
但是这两个组件仅是支持文件。不支持选择文件夹。

可以选择文件夹。

帮我。提前致谢


阅读 337

收藏
2020-06-10

共1个答案

一尘不染

标准HTML <input type="file">已经无法做到这一点。因此<t:inputFileUpload>,仅能准确呈现HTML元素的毫无疑问。此外,由于安全限制,Flash也不允许选择文件夹。因此,这<rich:fileUpload>也是毫无疑问的。

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

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

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

2020-06-10