获取JSF中选定文件的完整路径

获取JSF中选定文件的完整路径,jsf,jsf-2.2,Jsf,Jsf 2.2,我需要一个JSF按钮,允许用户浏览和选择一个特定的文件,然后我需要我的程序检索文件的完整路径 当用户从服务器本身运行客户端部分(即浏览到承载web应用的同一服务器中的文件)时,需要此功能。如果用户从另一台机器发送请求,那么上传文件就足够了 现在,我使用的是h:inputFile标记 <h:inputFile id="file" value="#{TrainingDirectoryBean.file}"></h:inputFile> 但我无法从中获得完整路径。解决方案是

我需要一个JSF按钮,允许用户浏览和选择一个特定的文件,然后我需要我的程序检索文件的完整路径

当用户从服务器本身运行客户端部分(即浏览到承载web应用的同一服务器中的文件)时,需要此功能。如果用户从另一台机器发送请求,那么上传文件就足够了

现在,我使用的是h:inputFile标记

 <h:inputFile id="file" value="#{TrainingDirectoryBean.file}"></h:inputFile>
但我无法从中获得完整路径。解决方案是什么?

JSF
组件生成一个HTML
元素,该元素官方只能够发送文件内容和唯一的文件名-尽管某些浏览器,特别是Redmond某个团队开发的浏览器,由于存在安全漏洞,还将发送完整的文件路径和文件名;因此,不应依赖于此,因为在未来版本中可能会对其进行修复和删除

在HTML术语中,不存在允许最终用户从其本地磁盘文件系统选择完整文件路径并将其全部(不包含相关文件内容)发送到服务器的任何元素。因为在这个问题的上下文中,JSF仅仅是一个HTML代码生成器,所以在JSF中也不可能


考虑创建一个基于HTML页面(或JSF页面,取决于您如何解释事物的透视图),然后以通常的方式将其嵌入到HTML页面中。Swing能够选择本地磁盘文件系统位置并获取完整路径。您可以依次通过将此信息发送到服务器(不要忘记对小程序进行签名,以避免对最终用户可能产生的安全警告进行打扰和担心)。

我不认为在服务器上浏览会产生任何影响的原因。是什么让你认为它有作用?我知道它没有,这就是为什么我在寻找其他解决方案。现在我只使用一个文本框,用户可以在其中键入文件的完整路径。谢谢你,巴卢斯。难道没有一种方法可以构建自定义文件浏览器吗?就像一个按钮,当点击它时,它会向服务器发送浏览特定路径的请求(比如第一次点击时的主目录),服务器会用该目录中的文件和文件夹的详细信息进行响应?我希望这样的解决方案已经存在。答案的最后一段回答了这个问题。不过我需要使用java bean支持的JSF。呃,JSF只是一个HTML代码生成器。您也可以轻松地将小程序嵌入JSF页面中。使用Javascript和JSF组件生成隐藏的命令组件,小程序可以轻松地与支持bean交互。啊,我不知道!非常感谢巴卢斯,我会试试的!
protected Part file;