• 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();
                }
            }

  • 相关阅读:
    最短路问题之Dijkstra算法
    最短路问题之Bellman-ford算法
    最小生成树之Kruskal(克鲁斯卡尔)算法
    二分图问题
    七桥问题与欧拉道路
    拓扑排序
    八连通块
    四连通检测
    USACO19DEC题解
    1206 雅礼集训D2题解
  • 原文地址:https://www.cnblogs.com/paulxie/p/1505972.html
Copyright © 2020-2023  润新知