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

原创 2006年06月09日 13:53:00

关键就一句:                    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();
            }
        }

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

asp.net 下载文件 中文名乱码

context.Response.Clear(); context.Response.AddHeader("Content-Disposition", "att...

彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题

在 asp.net 项目中,我们可以很方便地使用 Response.WriteFile() 方法向客户端输出一个文件。实际使用 asp.net 向客户端输出文件流时,却出现了异常:1、空格问题,当原文...

彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题

在 asp.net 项目中,我们可以很方便地使用 Response.WriteFile() 方法向客户端输出一个文件。实际使用 asp.net 向客户端输出文件流时,却出现了异常:1、空格问题,当原文...

解决Asp.net 实现文件下载时、输出文件时文件名的中文乱码和空格异常

在 asp.net 项目中,我们可以很方便地使用 Response.WriteFile() 方法向客户端输出一个文件。 实际使用 asp.net 向客户端输出文件流时,却出现了异常: 1、空格问题...

解决FCKeditor For asp.net 上传图片时中文乱码问题

在web.config中加入:这样设置后可以显示中文的文件,但URL地址也是中文的;如果服务器对中文地址的解析不好,可能导致图片无法浏览;所以修改:editor/filemanager/browser...

使用spring mvc做文件下载时ie浏览器文件名乱码和下载不了问题解决

使用spring mvc做文件下载时遇到了一个问题,就是下载的文件的文件名会出现乱码的情况,代码如下 @RequestMapping("/downloadFileT") publ...

Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案

一、首先,说一下我要实现的功能     根据老师ID、学年、学期,查询该教师教授的课程信息。 二、传递参数我遇到的问题:     我通过传递教师ID、学年和学期从数据库查...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)