public void OpenPath()                       //查看附件
    {
        string Path = Session["FilePath"].ToString();//路径为:~/upload/2011-6-9/01003720110609T143951.jpg
        Path = Server.MapPath(Path);
        if (Path.Length > 1)
        {
            
            try
            {
                
                System.Diagnostics.Process.Start(Path);
            }
            catch (Exception ee)
            {
                Page.RegisterStartupScript("script", "<script language='javascript'>alert('附件不存在,已经被删除或被移动过位置');</script>");
            }
        }
        else
        {
            
            Page.RegisterStartupScript("script", "<script language='javascript'>alert('没有附件不能打开');</script>");
        }
    }
//
//发布到服务器上是这样的:当我点击附件连接,调用上面的函数,路径已经存在,没有问题,也不弹出窗体,也不打开图片,系统中图片查看器是有的。
//本地vs2005中运行:没有问题,可以直接打开,为什么呢?
//难道是权限问题??? 哪里可以改??
//如果打开附件的方式不对,请告诉好的方式。谢谢各位的回复,均有分,但是请看清现在的问题。

解决方案 »

  1.   

    可能是System.Diagnostics.Process.Start(Path);
    这个原因,直接链接如何?
      

  2.   

     个人估计是这句问题,注释掉试试
    System.Diagnostics.Process.Start(Path);
      

  3.   

    System.Diagnostics.Process.Start(Path);
    这种方式是在服务器端打开的,不知道和客户端有什么关系
      

  4.   

    就是说现在有个HyperLink,HyperLink.text为:"附件".
    HyperLink其实是绑定的一个文件路径,比如:一个图片,xls,doc等等,路径。
    像这样的:~/upload/2011-6-9/01003720110609T143951.jpg我想要实现,点击HyperLink就直接打开上面的jpg,明白?
      

  5.   


    response.redirect(path);这样可以?
      

  6.   


    可以,不过没必要HyperLink.NavigateUrl = path 就成了。
      

  7.   

    http://webtest.hedw.com/upload/2011-6-9/01003720110609T143951.jpg这样就可以打开了,但是我不想要这种效果,这样网页还要后退,不小心关闭就网页就没了。
    我想实现用系统自带的编辑器单独打开这个文件。 网页还在,旁边弹出打开的窗体。
      

  8.   

    HyperLink.NavigateUrl=路径,那就没错啊,  
      

  9.   


    这种方式不合适我这里使用。首先,我点击标题淡出DIV层,覆盖后面的网页,弹出的div层中,js动态添加的链接,当我点击链接时调用函数,所以此时函数中已经不纯在 HyperLink。
      

  10.   

    Process :提供对本地或远程进程的访问,并使您能够启动或停止本地系统进程  
    Start:启动进程包含信息资源
    本地可以的,网页上就没有效果,是不是不能开启本地进程,访问服务器上网址中的文件呢,
      

  11.   

    a标签 href 指向那个URL。