• 解决用ASP.NET下载文件时,文件名为乱码的问题


    关键就一句:                    string strTemp = System.Web.HttpUtility.UrlEncode(strName, System.Text.Encoding.UTF8);//解决文件名乱码

            protected string strConn = Common.Config.GetAppSettingsKeyValue("DBConnectString");
            protected System.Data.OleDb.OleDbConnection  conn;
            protected System.Data.OleDb.OleDbCommand     cmd;
            protected System.Data.OleDb.OleDbDataReader  dr;

            private void Download(string field, string id)
            {
                try 
                {
                    string strCmd  = "select * from doc_body where id = " + id;
                    conn = new OleDbConnection(strConn);
                    cmd  = new OleDbCommand(strCmd,conn); 
                    conn.Open();
                    dr = cmd.ExecuteReader();
                    dr.Read();
                    int nSize = (int)dr["doc_size"];
                    string strContentType = (string)dr["ContentType"];
                    string strName = (string)dr["doc_name"];
                    byte [] data = (byte[])dr[field];
                    if(nSize == 0)
                    {
                        message.Text = "<font color=#0000ff>没有文件下载!</font>";
                    }
                    else
                    {
                        Response.Clear();
                        Response.Buffer = true;
                        //Response.Charset = "utf-8";
                        //Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");
                        //utf-8,gb2312,big5
                        Response.ContentType = strContentType;
                        //application/ms-excel,application/ms-word,application/ms-txt,application/ms-html或其他浏览器可直接支持文档
                        string strTemp = System.Web.HttpUtility.UrlEncode(strName, System.Text.Encoding.UTF8);//解决文件名乱码
                        Response.AppendHeader("content-disposition", "attachment;filename=" + strTemp);//附件下载
                        //Response.AppendHeader("content-disposition", "online;filename=" + strName);//在线打开
                        Response.OutputStream.Write(data, 0, nSize);     
                    }
                }
                catch(Exception exp)
                {
                    Common.utility.MessageBox(this,"下载失败!/n错误信息:/n"+exp.Message);
                }
                finally
                {
                    conn.Close();
                }
            }

  • 相关阅读:
    bzoj1691 [Usaco2007 Dec]挑剔的美食家
    cf493D Vasya and Chess
    cf493C Vasya and Basketball
    cf493B Vasya and Wrestling
    cf493A Vasya and Football
    bzoj1106 [POI2007]立方体大作战tet
    bzoj1537 [POI2005]Aut- The Bus
    bzoj1103 [POI2007]大都市meg
    bzoj1935 [Shoi2007]Tree 园丁的烦恼
    poj2299 Ultra-QuickSort
  • 原文地址:https://www.cnblogs.com/xieon1986/p/3447623.html
Copyright © 2020-2023  润新知