当前位置: 技术问答>java相关
如何在html中显示doc或excel文档
来源: 互联网 发布时间:2015-01-20
本文导语: 本公司采用oracle8i/oas4082/jsp1.0开发web应用,客户提出要在网页上显示doc或excel文档,小弟冥思苦想,也只能想出下面的馊主意,敬请各位大虾不吝指教. 1.要求客户在保存doc或excel时,另存为HTML格式,不过excel97好像不支持,并且...
本公司采用oracle8i/oas4082/jsp1.0开发web应用,客户提出要在网页上显示doc或excel文档,小弟冥思苦想,也只能想出下面的馊主意,敬请各位大虾不吝指教.
1.要求客户在保存doc或excel时,另存为HTML格式,不过excel97好像不支持,并且格式上有偏差;
2.采用文件上载的方式,将doc、excel以及对应的html和包含的图片,上载到web server的特定目录下去,并把文件名、目录名保存到数据库中(合计录相对应);
3.用户在查询浏览时,通过超链接打开前面保存的html进行浏览;
4.用户要修改html中的内容,通过下载程序下在前面保存的word或excel文档,也可以修改本地原来保留的备份文档,修改完之后再上载.
缺点:
doc,excel到html时格式有一定偏差,浏览效果较差;
上下载修改不便,用户操作有困难;
权限难以控制;
WEB服务器在保存文件时,每上载一次就需要创建一个新目录,并需要和数据库记录对应,非常繁杂浪费;
1.要求客户在保存doc或excel时,另存为HTML格式,不过excel97好像不支持,并且格式上有偏差;
2.采用文件上载的方式,将doc、excel以及对应的html和包含的图片,上载到web server的特定目录下去,并把文件名、目录名保存到数据库中(合计录相对应);
3.用户在查询浏览时,通过超链接打开前面保存的html进行浏览;
4.用户要修改html中的内容,通过下载程序下在前面保存的word或excel文档,也可以修改本地原来保留的备份文档,修改完之后再上载.
缺点:
doc,excel到html时格式有一定偏差,浏览效果较差;
上下载修改不便,用户操作有困难;
权限难以控制;
WEB服务器在保存文件时,每上载一次就需要创建一个新目录,并需要和数据库记录对应,非常繁杂浪费;
|
1、假设客户端的机器上有Word或者Excel程序,那就很好办了,上载的时候,直接上载Word或者Excel文件;下载的时候,在新窗口中打开,便能够自动地进入Word或者Excel。
2、Word或者Excel文件直接上载到数据库中是非常方便的,我们一直就这么用。
另外,Oracle公司最近推出了一种叫iFS(Internet File System)的东西,功能很强大,要是你们的机器足够的好,可以玩玩,性能挺不错的。修改数据库中的文档就像你本地机的一样,完全透明,性能很棒。
2、Word或者Excel文件直接上载到数据库中是非常方便的,我们一直就这么用。
另外,Oracle公司最近推出了一种叫iFS(Internet File System)的东西,功能很强大,要是你们的机器足够的好,可以玩玩,性能挺不错的。修改数据库中的文档就像你本地机的一样,完全透明,性能很棒。
|
"... WEB服务器在保存文件时,每上载一次就需要创建一个新目录,并需要和数据库记录对应,非常繁杂浪费; ..."
为什么每次都要创建新的目录呢? 假设web根目录为/home/httpd/htdocs,用来保存文档的目录(为安全应该放在web目录之外吧?)为/usr/local/documents(对这个目录权限进行适当设置)
然后用户上传文件的时候,通过程序控制将文件存入保存文档的目录(或者里面的如word,xsl等子目录)中,同时将路径存入数据库 ...
当用户需要访问这些word,xsl文档的时候,可以查询数据库得到文件的位置,然后copy到web目录下(比如/home/httpd/html/temp_docs),当然了,为了安全,完全还可以将文件名进行变更(比如将文件名换成很长并无意义的) ... 当然这样还是不安全 ... 我所想到的(延续这个思路所想到的),那就是做个bean读取文档给用户. 也就是输出个header给客户的browser,告诉它接下来要显示的文档是word或者excel什么的,你可以参照一下一些java web server的源程序,这不困难的.
哦,对了,如果不喜欢,你还可以去这里看看,或许收获更大哦~
http://www.linar.com/jintegra/doc/
最后,很想知道大家还有没有更好的方法?
为什么每次都要创建新的目录呢? 假设web根目录为/home/httpd/htdocs,用来保存文档的目录(为安全应该放在web目录之外吧?)为/usr/local/documents(对这个目录权限进行适当设置)
然后用户上传文件的时候,通过程序控制将文件存入保存文档的目录(或者里面的如word,xsl等子目录)中,同时将路径存入数据库 ...
当用户需要访问这些word,xsl文档的时候,可以查询数据库得到文件的位置,然后copy到web目录下(比如/home/httpd/html/temp_docs),当然了,为了安全,完全还可以将文件名进行变更(比如将文件名换成很长并无意义的) ... 当然这样还是不安全 ... 我所想到的(延续这个思路所想到的),那就是做个bean读取文档给用户. 也就是输出个header给客户的browser,告诉它接下来要显示的文档是word或者excel什么的,你可以参照一下一些java web server的源程序,这不困难的.
哦,对了,如果不喜欢,你还可以去这里看看,或许收获更大哦~
http://www.linar.com/jintegra/doc/
最后,很想知道大家还有没有更好的方法?