Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(outPutFileName, Encoding.UTF8));
            Response.OutputStream.Write(file, 0, file.Length);
            Response.OutputStream.Flush();
            Response.End();
Response 打开文件 open或save对话框,当文件名有小于号的时候(已经过url编码),可以打开,但不能保存,一点保存 对话框就直接消失,没有任何反应,其他字符都是可以的,为什么???。 

解决方案 »

  1.   

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!
    文件名不能出现  / \  :  *  ? " < > | 把.
      

  2.   

    其他字符都是可以的经过URL编码后,这些特殊字符都转换为 %开头的字母组合了,在调试过程中,已经生成了临时文件,注意,如果选择打开是可以的,哪怕包含 小于号再举个例子 ,我试了用 ?.pdf, 可以打开,也可以保存,文件名已经转为 %3F.pdf, 但 <.pdf打开 可以,不能保存,但有临时文件 %3e.pdf, 而且我还试过,就算你不做处理,生成临时文件的时候 也会自动 把特殊字符转化为下划线