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

jac*_*ert 2 jsf jsp richfaces

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

我试过,t:inputFileUploadrich:fileUpload.
但这两个组件都只是支持文件.不支持选择文件夹.

可以选择文件夹.

帮我.提前致谢

Bal*_*usC 5

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

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

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

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