我用Response.Redirect(Server.MapPath("A_Data\\BarCode.lbl"));来打开一个*.lbl文件,在服务器端可以用,在客户端就是无法打开该页
我试过用相对路径,可是用相对路径在服务器端都打不开,其他的格式文件可以,不知道如何解决

解决方案 »

  1.   

    Server.MapPath("A_Data\\BarCode.lbl")是把相对路径映射为绝对路径不知道你要干什么?你要打开客户短的文件,还是服务器上的如果是客户端的,要用file控件上传,服务器的话,你原先的方法就可以了
      

  2.   

    “服务器的话,你原先的方法就可以了”是打开可以,你用redirect就不可以了
    如果这个文件在服务器上,你直接Response.Redirect(@"\A_Data\BarCode.lbl");就可以了
      

  3.   

    我没说清楚,我是想在客户端打开服务器端的*.lbl文件,
    用Response.Redirect(@"\A_Data\BarCode.lbl");打不开,错误:“无法找到该页”
      

  4.   

    这种把相对路径转化为绝对路径的方法Server.Mappath(),是以你页面据在的路径为基础的。使用起来不方便。如果你的页面在虚拟根,这样写就不会错。但例如如果你在根的下一层就得:
    Server.Mappath(@"..\A_Data\BarCode.lbl")。所以你可以把连接写在一个类中,或者写在web.config的,configuration段中。这样就方便了。
      

  5.   

    客户端打开服务端的文件就和打开其它的aspx文件一件啊
    这里就必须要用相对路径,如果在当前用户程序根目录下,eg:
    Response.Redirect(@"\A_Data\BarCode.lbl");
    你说找不对,主要是看你的目录间的关系了。
    .代表当前目录
    ..代表当前目录的父级目录
    比如,当前当前应用程序在a目录下,而你要的文件在b目录,而他们都在c目录下,此时如果你要用b目录下的文件时就要这么写
    Response.Redirect(@"..\b\BarCode.lbl");当然这里要保证它们的目录关系是在web服务器上的关系,而不仅仅是物理关系。
      

  6.   

    两位大侠,你们说的我明白,但同样一个目录下,有一个*.mdb文件,我用同样的路径就可以打开*.mdb却打不开*.lbl
      

  7.   

    你所说的打开,是不是说用浏览器打开啊,这个主要看服务器的IIS的设置了,其文件类型是不是在MIME中注册了,打开IIS管理器,选择你的站点,查看其属性,找到HTTP头页,选择文件类型,再选择添加新类型,其两项都设置为*.lbl,点击确定,这样在redirect的时候就可以了。
      

  8.   

    谢了,我一直不知道iis还有这功能,呵呵,又学到新知识了