zoukankan      html  css  js  c++  java
  • 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();
                }
            }

  • 相关阅读:
    mysql压缩版安装
    网站还没加载完成时,显示正在加载的画面
    LESS基础教程
    用CSS编写多种常见的图形
    JavaScript的this
    JavaScript的闭包
    立即执行函数表达式(自执行函数)
    JavaScript的全局变量
    关于async function(){ let res = await } 详解
    mysql数据库的系统操作基本操作
  • 原文地址:https://www.cnblogs.com/paulxie/p/1505972.html
Copyright © 2011-2022 走看看