为什么不直接用<a href="文件名">下载</a>

解决方案 »

  1.   

    因为我要下载的文件是word文件,如果用你的方法(<a href="文件名">下载</a>),当你单击它时,系统会自动打开,不会直接让你下载,我们的头要求后者
      

  2.   

    我认为fs.name应该制定自己过滤后的名字,比如说使用文件标题作为下载文件的默认的名字,把文件名不允许的字符全部替换掉!
      

  3.   

    这是我封装的一个下载的方法,看看如何?
    /// <summary>
    /// Force to pop the dialog box for download! 
    /// </summary>
    /// <param name="p">Page object</param>
    /// <param name="_FilePath">The Path of this file</param>
    /// <param name="_FileName">Default FileName which Show in the dialog box</param>
    public static void Download(Page p, string _FilePath, string _FileName)
    {
    p.Response.ContentType = "APPLICATION/OCTET-STREAM";
    p.Response.AddHeader("Content-Disposition", "attachment;filename="
    + p.Server.UrlEncode(_FileName));FileStream objFStream = new FileStream(_FilePath, FileMode.Open, FileAccess.Read);
    IntPtr objIPtr = objFStream.Handle;
    long lngStart = 0, lngEnd = objFStream.Length;p.Response.WriteFile(objIPtr, lngStart, lngEnd);
    objFStream.Close();
    }
      

  4.   

    小帆:
        其实你的代码和我的差不多,我刚才调试了一下程序,发现如果我要下载的中文名字太长就不行了,不是因为其中有中文标点的原因,对于短的中文名字是毫无问题的。大家可以把
    上个程序中的strFile赋值等于“d:\Application\eaaddition\许亚阿瑟多幅洒的发毒素搜的扶绥大发斯蒂芬速度.doc”
    试验一下,谢谢,