我正在导入Excel文档以便在UI中阅读和显示内容.我需要知道如何使用浏览获取上传文件的路径,以便读取excel文件的内容.
我需要知道如何使用浏览获取上传文件的路径,以便读取excel文件的内容.
这里有一个主要的思维错误.
想象一下,我是想要上传文件的客户端,并且您是需要获取文件内容的服务器.我给你的路径c:\path\to\foo.xls作为唯一的信息.你将如何作为服务器永远得到它的内容是什么?您是否有与本地硬盘文件系统的开放TCP/IP连接?真?是否所有其他人的本地磁盘文件系统都能通过Internet轻松访问所有敏感信息?
这不是上传文件的方式.只有当服务器在与客户端在物理上相同的机器上运行时,这才会起作用,这样您就可以使用FileInputStream该路径(这只会出现在本地开发环境中).
您应该对客户端与HTTP请求正文一起发送给您的唯一文件内容感兴趣.在HTML术语中,您可以使用<input type="file">它.但是在即将到来的JSF 2.2之前,没有相同的标准JSF <h:xxx>组件.您需要查找为此提供组件的JSF组件库.在您的情况下,使用RichFaces(在您的问题中标记),您可以使用<rich:fileUpload>它.目前还不清楚你使用的是哪个RichFaces版本,但是对于RF 3.3.3,你可以在3.3.3展示站点和4.0展示站点中的RF 4.0中找到一个完整的例子.
无论您选择何种方式,您都应该在JSF托管bean中最终得到一个byte[]或InputStream代表文件内容.然后,您可以自由地将它存储在服务器的本地磁盘文件系统中,例如FileOutputStream.您甚至可以直接将它直接提供给您正在使用的任何Excel API,其中大多数只有一个方法采用InputStream或byte[].
| 归档时间: |
|
| 查看次数: |
5780 次 |
| 最近记录: |