问题描述
asp.net2.0开发的一个网站,有一个查看文档按钮,点击此按钮,会自动下载网站根目录下的一个word文档,并且文档的内容在IE中直接打开,请问怎么实现吗?最好是有代码的
解决方案
解决方案二:
在安装Office2003以后,有一个ActiveX控件被安装到了系统中,这个控件位于“ProgramFilesMicrosoftOfficeOFFICE11owssupp.dll”。通过这个控件,客户端页面上的JavaScript就可以激活本地的Office软件,来实现打开、编辑Office文档。(另,OfficeXP应该就已经包含这个ActiveX控件了。)首先,用Script创建一个本地的对象:openDocObj=newActiveXObject("SharePoint.OpenDocuments.2");//为了兼容OfficeXP,可以创建“SharePoint.OpenDocuments.1”然后,调用openDocObj的相应的方法。比如打开服务器上的一个Office文档:openDocObj.ViewDocument("http://www.abc.com/documents/sample.doc");openDocObj对象会根据参数中不同的Office文档类型(.doc、.xls、.ppt)来打开不同的程序(Word、Excel、PowerPoint)。ViewDocument()方法还有一个重载签名,可以让我们手工指定激活哪个程序来打开文档:openDocObj.ViewDocument("http://www.abc.com/documents/sample.doc",要激活的程序的ProgID);那么要打开Office程序在线编辑文件又如何?openDocObj.EditDocument("http://www.abc.com/documents/sample.doc");就可以直接激活Word,在Word里面编辑文档,然后直接点击Word里面的保存功能,就可以将文件保存会服务器上了。注意:为了让Word能将编辑后的文档直接保存会服务器,访问Web站点的当前上下文的WindowsIdentity必须对服务器的相应目录(即“http://www.abc.com/documents”这个虚拟目录所对应的服务器上的物理路径)有相应的写权限,否则保存动作会失败。编辑完成后,EditDocument()会返回一个bool值,来反映编辑操作是否成功。我们还可以通过打开服务器上的一个文档模版,来创建一个新的文档:openDocObj.CreateNewDocument("http://www.abc.com/documents/sampleTemplate.dot","http://www.abc.com/documents/");就可以使用“http://www.abc.com/documents/sampleTemplate.dot”这个模版来创建一个新的文档,默认新文档的保存地点是“http://www.abc.com/documents/”。创建新文档时使用的程序取决于模版文件的类型(比如.dot模版会对应Word)。新文档的保存同样需要注意权限问题。CreateNewDocument()方法同样会返回一个bool值来反映操作是否成功。CreateNewDocument()方法的第一个参数,除了可以使用一个模版的地址外,还可以直接指定为希望用来创建新文档的客户端程序的ProgID。
解决方案三:
weboffice也可以用框架直接在网页上打开不过效果不好.
解决方案四:
在程序来引用一个offence插件再用那个插件显示就行了
解决方案五:
stringpath="../../uploadfile";path=Server.MapPath(path)+"\12349088郑玲.doc";FileInfofi=newFileInfo(path);if(fi.Exists){Response.Clear();Response.Write(fi.Name);Response.AddHeader("Content-Disposition","inline;filename="+Server.UrlEncode(path));Response.AddHeader("Content-Length",fi.Length.ToString());//添加输出流Response.ContentType="application/octet-stream";Response.Filter.Close();Response.WriteFile(fi.FullName);Response.End();}这样的代码,运行后,还是会出来下载保存对话框,如何解决呢?
解决方案六:
引用4楼dream_xxj的回复:
stringpath="../../uploadfile";path=Server.MapPath(path)+"\12349088郑玲.doc";FileInfofi=newFileInfo(path);if(fi.Exists){Response.Clea……
这是因为你的ContentType写错了。
解决方案七:
to5楼:Response.ContentType="application/octet-stream";不支持word文档吗?因为之前就用的这条语句,是可以下载word文档的。非得要改成下面这个吗?Response.ContentType="application/msword";