各位专家、大侠:
本人开发一个Xpage页面,其中包括一个文件“文件上载”控件,绑定文档的一个富文本域。思路是先通过“文件上载”选一个EXCEL附件文件,然后加一个按钮操作,把文件的内容都出来。其中一定要先得到上传文件的全称,包括路径和文件名,然后创建对象读取这个文件的内容。
一般的控件,都可以用getComponent("inputText1").getValue()这样的语句读出,而“文件上载”却无法读出,对getComponent("fileUpload1").getValue()进行检测,既没有报错,又没有反应,结果好像是空的。明明选择文件后,“文件上载”控件的框内显示完整的文件名,可就是读不出来呀。
认真研究了“上传控件”的一系列属性,就是找不到这个显示在框子里的文件名对应的属性。感觉““文件上载”及“文件下载”是复杂的组合控件。如何用程序方法读取及控制,望指教!
这个例子之前我下载过,多谢szkenszken无私的分享!只是本人没有JAVA功底,无法应对其中的一系列错误。本人只想通过简单的JavaScript实现。
要想读取excel的内容, 首先要拿到上传到服务器上后的excel 的 全路径, 然后用poi 或者其他东西来解析excel文件的内容。
http://www.lotuschina.net/club/thread-17445-1-1.html
理解Notes的富文本域才可以实现附件的分离读取。
不管你用哪种方法,基本的思路都是,把附件拆分存放到某个文件夹下面,然后通过OLE(LS代码)的方法读取或者POI(JS代码)的方法进行打开附件文件,读取附件内容。
收起以前做过Xpage的项目,几乎每个核心的表单都有上传的功能,等我整理一下说说:
1.如你所知,附件是存在富文本里了
2.富文本本质上是一个集合的集合
所以要取附件内容可以使用下列方法(我以前工作的代码,不一定最优):
RichTextItem item = (RichTextItem)doc.getFirstItem(\"fldFile\");
Vector v = item.getEmbeddedObjects();
Enumeration e = v.elements();
while (e.hasMoreElements()) {
EmbeddedObject eo = (EmbeddedObject)e.nextElement();
……
这段代码演示怎么从富文本域里面轮询附件,这里eo已经是一个附件对象了
收起我用下面可以测试到获取到上传的路径。
function testUpload()
{
var objUpload=document.getElementById(\"Upload\");
alert(objUpload.value);
}