现在做的项目有这么一个需求,在a页面有个显示了多个文件名的链接文本,点击该文件名弹出一个新页面。新页面中判断打开文件的类型,如果是图片则直接在页面中显示图片,如果是excel文件或word文件,则调用office打开该文件,这怎么实现?
  本人是初学者,以前没做过类似功能,请各位高手解答下解决思路。    是否应该是在客户端调用该office组件(js)?如果是该如何调用,客户端是如何知道打开的文件类型是excel文件或word文件而调用相应组件(难道是将文件物理路径存在隐藏域中,然后用js判断改隐藏域的值然后判断)?  谢谢!!

解决方案 »

  1.   

    <a href="你的文件"直接这样就可以了,如果文件格式浏览器能识别,浏览器会自动打开的,否则,提示保存、打开的提示框。你没法控制客户端使用什么打开,除非你在页面的代码嵌入插件
      

  2.   


     额。。这么简单?这个方法是否是office另外打开的?我要的是嵌入到页面中的,且嵌入后一样可以点击单元格而且右键点击一样有office哪些菜单。另外你说除非代码嵌入插件,真的有这东西吗?可以直接给代码或链接吗?
      今天有人给我一下代码,效果是另外打开的,且把页面关闭了帮看看这样写跟你说的有什么不一样:      public void Open(string FileName)
        {
            string FullFileName = "";
            try
            {
                FullFileName = FileName; //文件物理路径
                FileInfo DownloadFile = new FileInfo(FullFileName);//文件流
                if (DownloadFile.Exists)
                {
                    Response.Clear();
                    Response.ClearHeaders();
                    Response.Buffer = false;
                    Response.ContentType = "application/octet-stream";
                    Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
                    Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
                    Response.WriteFile(DownloadFile.FullName);
                    Response.Flush();
                    Response.End();
                }
            }
            catch
            {
                //打开时异常了
            }    }