下载
//下载txt
 private static void ExportTXT(DataTable tb, string fileName)
        {
            HttpContext.Current.Response.Clear();//删除缓冲区,必须在启用缓存区(Response.Buffer = true)状态下才能使用,不然报错
            string FileName = fileName + ".txt";
            HttpContext.Current.Response.Buffer = true; //开启缓冲
            HttpContext.Current.Response.Charset = "UTF-8";//输出文件的编码格式,"GB2312"表示简体中文,通用"UTF-8"
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;//System.Text.Encoding.UTF7可以兼容邮件下载
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());//固定格式的写法
            HttpContext.Current.Response.ContentType = "application/ms-text";//返回数据类型为text
            System.IO.StringWriter sw = new System.IO.StringWriter();
            for (int i = 0; i < tb.Rows.Count; i++)
            {
                for (int j = 0; j < tb.Columns.Count; j++)
                {
                    sw.Write(tb.Rows[i][j].ToString().Trim() + "\t");//列间用制表符
                }
                sw.Write("\r\n");//行间用换行符
            }
            HttpContext.Current.Response.Write(sw.ToString());//写入
            sw.Close();//关闭流
            HttpContext.Current.Response.End();//关闭输出
        }
----------------------------------------------------------------------------
//下载Excel
private static void ExportExcel(Stream stm, DataView vw, string sModuleName, int nStartRecord, int nEndRecord)
		{
			XmlTextWriter xw = new XmlTextWriter(stm, Encoding.UTF8);
			xw.Formatting  = Formatting.Indented;
			xw.IndentChar  = ControlChars.Tab;
			xw.Indentation = 1;
			xw.WriteStartDocument();
			xw.WriteProcessingInstruction("mso-application", "progid=\"Excel.Sheet\"");
			xw.WriteStartElement("Workbook");
				xw.WriteAttributeString("xmlns", "urn:schemas-microsoft-com:office:spreadsheet");
				xw.WriteAttributeString("xmlns:o", "urn:schemas-microsoft-com:office:office");
				xw.WriteAttributeString("xmlns:x", "urn:schemas-microsoft-com:office:excel");
				xw.WriteAttributeString("xmlns:ss", "urn:schemas-microsoft-com:office:spreadsheet");
				xw.WriteAttributeString("xmlns:html", "http://www.w3.org/TR/REC-html40");
			xw.WriteStartElement("DocumentProperties");
				xw.WriteAttributeString("xmlns", "urn:schemas-microsoft-com:office:office");
				xw.WriteStartElement("Author");
					xw.WriteString(Security.FULL_NAME);
				xw.WriteEndElement();
				xw.WriteStartElement("Created");
                    //xw.WriteString(DateTime.Now.ToUniversalTime().ToString("s"));
                xw.WriteString(DateTime.Now.ToString("s"));
				xw.WriteEndElement();
				xw.WriteStartElement("Version");
					xw.WriteString("11.6568");
				xw.WriteEndElement();
			xw.WriteEndElement();
			xw.WriteStartElement("ExcelWorkbook");
				xw.WriteAttributeString("xmlns", "urn:schemas-microsoft-com:office:excel");
				xw.WriteStartElement("WindowHeight");
					xw.WriteString("15465");
				xw.WriteEndElement();
				xw.WriteStartElement("WindowWidth");
					xw.WriteString("23820");
				xw.WriteEndElement();
				xw.WriteStartElement("WindowTopX");
					xw.WriteString("120");
				xw.WriteEndElement();
				xw.WriteStartElement("WindowTopY");
					xw.WriteString("75");
				xw.WriteEndElement();
				xw.WriteStartElement("ProtectStructure");
					xw.WriteString("False");
				xw.WriteEndElement();
				xw.WriteStartElement("ProtectWindows");
					xw.WriteString("False");
				xw.WriteEndElement();
			xw.WriteEndElement();
			xw.WriteStartElement("Styles");
				xw.WriteStartElement("Style");
					xw.WriteAttributeString("ss:ID", "Default");
					xw.WriteAttributeString("ss:Name", "Normal");
					xw.WriteStartElement("Alignment");
						xw.WriteAttributeString("ss:Vertical", "Bottom");
					xw.WriteEndElement();
					xw.WriteStartElement("Borders");
					xw.WriteEndElement();
					xw.WriteStartElement("Font");
					xw.WriteEndElement();
					xw.WriteStartElement("Interior");
					xw.WriteEndElement();
					xw.WriteStartElement("NumberFormat");
					xw.WriteEndElement();
					xw.WriteStartElement("Protection");
					xw.WriteEndElement();
				xw.WriteEndElement();
				xw.WriteStartElement("Style");
					xw.WriteAttributeString("ss:ID", "s21");
					xw.WriteStartElement("NumberFormat");
						xw.WriteAttributeString("ss:Format", "General Date");
					xw.WriteEndElement();
				xw.WriteEndElement();
			xw.WriteEndElement();
			DataTable tbl = vw.Table;
			xw.WriteStartElement("Worksheet");
				xw.WriteAttributeString("ss:Name", sModuleName);
			xw.WriteStartElement("Table");
				xw.WriteAttributeString("ss:ExpandedColumnCount", tbl.Columns.Count.ToString());
				xw.WriteAttributeString("ss:FullColumns"        , tbl.Columns.Count.ToString());
				// 11/03/2006 Paul.  Add one row for the header. 
				xw.WriteAttributeString("ss:ExpandedRowCount"   , (nEndRecord - nStartRecord + 1).ToString());
			xw.WriteStartElement("Row");
			for ( int nColumn = 0; nColumn < tbl.Columns.Count; nColumn++ )
			{
				DataColumn col = tbl.Columns[nColumn];
				xw.WriteStartElement("Cell");
				xw.WriteStartElement("Data");
				xw.WriteAttributeString("ss:Type", "String");
                //xw.WriteString(col.ColumnName.ToLower());
                xw.WriteString(col.ColumnName);
				xw.WriteEndElement();
				xw.WriteEndElement();
			}
			xw.WriteEndElement();
			for ( int i = nStartRecord; i < nEndRecord; i++ )
			{
				xw.WriteStartElement("Row");
				DataRowView row = vw[i];
				for ( int nColumn = 0; nColumn < tbl.Columns.Count; nColumn++ )
				{
					DataColumn col = tbl.Columns[nColumn];
					xw.WriteStartElement("Cell");
					// 11/03/2006 Paul.  The style must be set in order for a date to be displayed properly. 
					if ( col.DataType.FullName == "System.DateTime" && row[nColumn] != DBNull.Value )
						xw.WriteAttributeString("ss:StyleID", "s21");
					xw.WriteStartElement("Data");
					if ( row[nColumn] != DBNull.Value )
					{
						switch ( col.DataType.FullName )
						{
							case "System.Boolean" :
								xw.WriteAttributeString("ss:Type", "String");
								xw.WriteString(Sql.ToBoolean (row[nColumn]) ? "1" : "0");
								break;
							case "System.Single"  :
								xw.WriteAttributeString("ss:Type", "Number");
								xw.WriteString(Sql.ToDouble  (row[nColumn]).ToString() );
								break;
							case "System.Double"  :
								xw.WriteAttributeString("ss:Type", "Number");
								xw.WriteString(Sql.ToDouble  (row[nColumn]).ToString() );
								break;
							case "System.Int16"   :
								xw.WriteAttributeString("ss:Type", "Number");
								xw.WriteString(Sql.ToInteger (row[nColumn]).ToString() );
								break;
							case "System.Int32"   :
								xw.WriteAttributeString("ss:Type", "Number");
								xw.WriteString(Sql.ToInteger (row[nColumn]).ToString() );
								break;
							case "System.Int64"   :
								xw.WriteAttributeString("ss:Type", "Number");
								xw.WriteString(Sql.ToLong    (row[nColumn]).ToString() );
								break;
							case "System.Decimal" :
								xw.WriteAttributeString("ss:Type", "Number");
								xw.WriteString(Sql.ToDecimal (row[nColumn]).ToString() );
								break;
							case "System.DateTime":
								xw.WriteAttributeString("ss:Type", "DateTime");
                                //xw.WriteString(Sql.ToDateTime(row[nColumn]).ToUniversalTime().ToString("s"));
                                xw.WriteString(Sql.ToDateTime(row[nColumn]).ToString("s"));
								break;
							case "System.Guid"    :
								xw.WriteAttributeString("ss:Type", "String");
								xw.WriteString(Sql.ToGuid    (row[nColumn]).ToString().ToUpper());
								break;
							case "System.String"  :
								xw.WriteAttributeString("ss:Type", "String");
								xw.WriteString(Sql.ToString  (row[nColumn]));
								break;
							case "System.Byte[]"  :
							{
								xw.WriteAttributeString("ss:Type", "String");
								byte[] buffer = Sql.ToByteArray((System.Array) row[nColumn]);
								xw.WriteBase64(buffer, 0, buffer.Length);
								break;
							}
							default:
								//	throw(new Exception("Unsupported field type: " + rdr.GetFieldType(nColumn).FullName));
								// 11/03/2006 Paul.  We need to write the type even for empty cells. 
								xw.WriteAttributeString("ss:Type", "String");
								break;
						}
					}
					else
					{
						// 11/03/2006 Paul.  We need to write the type even for empty cells. 
						xw.WriteAttributeString("ss:Type", "String");
					}
					xw.WriteEndElement();
					xw.WriteEndElement();
				}
				xw.WriteEndElement();
			}
			xw.WriteEndElement();  // Table
			xw.WriteStartElement("WorksheetOptions");
				xw.WriteAttributeString("xmlns", "urn:schemas-microsoft-com:office:excel");
				xw.WriteStartElement("Selected");
				xw.WriteEndElement();
				xw.WriteStartElement("ProtectObjects");
					xw.WriteString("False");
				xw.WriteEndElement();
				xw.WriteStartElement("ProtectScenarios");
					xw.WriteString("False");
				xw.WriteEndElement();
			xw.WriteEndElement();  // WorksheetOptions
			xw.WriteEndElement();  // Worksheet
			xw.WriteEndElement();  // Workbook
			xw.WriteEndDocument();
			xw.Flush();
		}
----------------------------------------------------------------------------
//下载Xml
		private static void ExportXml(Stream stm, DataView vw, string sModuleName, int nStartRecord, int nEndRecord)
		{
			XmlTextWriter xw = new XmlTextWriter(stm, Encoding.UTF8);
			xw.Formatting  = Formatting.Indented;
			xw.IndentChar  = ControlChars.Tab;
			xw.Indentation = 1;
			xw.WriteStartDocument();
			xw.WriteStartElement("splendidcrm");
			DataTable tbl = vw.Table;
			for ( int i = nStartRecord; i < nEndRecord; i++ )
			{
				xw.WriteStartElement(sModuleName);
				DataRowView row = vw[i];
				for ( int nColumn = 0; nColumn < tbl.Columns.Count; nColumn++ )
				{
					DataColumn col = tbl.Columns[nColumn];
                    //xw.WriteStartElement(col.ColumnName.ToLower());
                    xw.WriteStartElement(col.ColumnName);
					if ( row[nColumn] != DBNull.Value )
					{
						switch ( col.DataType.FullName )
						{
							case "System.Boolean" :  xw.WriteString(Sql.ToBoolean (row[nColumn]) ? "1" : "0");  break;
							case "System.Single"  :  xw.WriteString(Sql.ToDouble  (row[nColumn]).ToString() );  break;
							case "System.Double"  :  xw.WriteString(Sql.ToDouble  (row[nColumn]).ToString() );  break;
							case "System.Int16"   :  xw.WriteString(Sql.ToInteger (row[nColumn]).ToString() );  break;
							case "System.Int32"   :  xw.WriteString(Sql.ToInteger (row[nColumn]).ToString() );  break;
							case "System.Int64"   :  xw.WriteString(Sql.ToLong    (row[nColumn]).ToString() );  break;
							case "System.Decimal" :  xw.WriteString(Sql.ToDecimal (row[nColumn]).ToString() );  break;
                            //case "System.DateTime":  xw.WriteString(Sql.ToDateTime(row[nColumn]).ToUniversalTime().ToString(CalendarControl.SqlDateTimeFormat));  break;
                            case "System.DateTime": xw.WriteString(Sql.ToDateTime(row[nColumn]).ToString(CalendarControl.SqlDateTimeFormat)); break;
							case "System.Guid"    :  xw.WriteString(Sql.ToGuid    (row[nColumn]).ToString().ToUpper());  break;
							case "System.String"  :  xw.WriteString(Sql.ToString  (row[nColumn]));  break;
							case "System.Byte[]"  :
							{
								byte[] buffer = Sql.ToByteArray((System.Array) row[nColumn]);
								xw.WriteBase64(buffer, 0, buffer.Length);
								break;
							}
							//default:
							//	throw(new Exception("Unsupported field type: " + rdr.GetFieldType(nColumn).FullName));
						}
					}
					xw.WriteEndElement();
				}
				xw.WriteEndElement();
			}
			xw.WriteEndElement();
			xw.WriteEndDocument();
			xw.Flush();
		}
----------------------------------------------------------------------------
//下载Delimited
		private static void ExportDelimited(Stream stm, DataView vw, string sModuleName, int nStartRecord, int nEndRecord, char chDelimiter)
		{
			StreamWriter wt = new StreamWriter(stm);
			DataTable tbl = vw.Table;
			for ( int nColumn = 0; nColumn < tbl.Columns.Count; nColumn++ )
			{
				if ( nColumn > 0 )
					wt.Write(chDelimiter);
				DataColumn col = tbl.Columns[nColumn];
                //wt.Write(col.ColumnName.ToLower());
                wt.Write(col.ColumnName);
			}
			wt.WriteLine("");
			for ( int i = nStartRecord; i < nEndRecord; i++ )
			{
				DataRowView row = vw[i];
				for ( int nColumn = 0; nColumn < tbl.Columns.Count; nColumn++ )
				{
					if ( nColumn > 0 )
						wt.Write(chDelimiter);
					DataColumn col = tbl.Columns[nColumn];
					if ( row[nColumn] != DBNull.Value )
					{
						string sValue = String.Empty;
						switch ( col.DataType.FullName )
						{
							case "System.Boolean" :  sValue = Sql.ToBoolean (row[nColumn]) ? "1" : "0";  break;
							case "System.Single"  :  sValue = Sql.ToDouble  (row[nColumn]).ToString() ;  break;
							case "System.Double"  :  sValue = Sql.ToDouble  (row[nColumn]).ToString() ;  break;
							case "System.Int16"   :  sValue = Sql.ToInteger (row[nColumn]).ToString() ;  break;
							case "System.Int32"   :  sValue = Sql.ToInteger (row[nColumn]).ToString() ;  break;
							case "System.Int64"   :  sValue = Sql.ToLong    (row[nColumn]).ToString() ;  break;
							case "System.Decimal" :  sValue = Sql.ToDecimal (row[nColumn]).ToString() ;  break;
                            //case "System.DateTime":  sValue = Sql.ToDateTime(row[nColumn]).ToUniversalTime().ToString(CalendarControl.SqlDateTimeFormat);  break;
                            case "System.DateTime": sValue = Sql.ToDateTime(row[nColumn]).ToString(CalendarControl.SqlDateTimeFormat); break;
							case "System.Guid"    :  sValue = Sql.ToGuid    (row[nColumn]).ToString().ToUpper();  break;
							case "System.String"  :  sValue = Sql.ToString  (row[nColumn]);  break;
							case "System.Byte[]"  :
							{
								byte[] buffer = Sql.ToByteArray((System.Array) row[0]);
								sValue = Convert.ToBase64String(buffer, 0, buffer.Length);
								break;
							}
							//default:
							//	throw(new Exception("Unsupported field type: " + rdr.GetFieldType(nColumn).FullName));
						}
						if( sValue.IndexOf(chDelimiter) >= 0 || sValue.IndexOf('\"') >= 0 )
							sValue = "\"" + sValue.Replace("\"", "\"\"") + "\"";
						wt.Write(sValue);
					}
				}
				wt.WriteLine("");
			}
			wt.Flush();
		}
----------------------------------------------------------------------------
//下载 通用
public static void Export(DataView vw, string sModuleName, string sExportFormat, string sExportRange, int nCurrentPage, int nPageSize, string[] arrID, bool bDeleteIDColumn)
        {
            int nStartRecord = 0;
            int nEndRecord = vw.Count;
            switch (sExportRange)
            {
                case "Page":
                    nStartRecord = nCurrentPage * nPageSize;
                    nEndRecord = Math.Min(nStartRecord + nPageSize, vw.Count);
                    break;
                case "Selected":
                    {
                        // 10/17/2006 Paul.  There must be one selected record to continue. 
                        if (arrID == null)
                        {
                            L10N L10n = HttpContext.Current.Items["L10n"] as L10N;
                            throw (new Exception(L10n.Term(".LBL_LISTVIEW_NO_SELECTED")));
                        }
                        StringBuilder sbIDs = new StringBuilder();
                        int nCount = 0;
                        foreach (string item in arrID)
                        {
                            if (nCount > 0)
                                sbIDs.Append(" or ");
                            sbIDs.Append("ID = \'" + item.Replace("\'", "\'\'") + "\'" + ControlChars.CrLf);
                            nCount++;
                        }
                        //vw.RowFilter = "ID in (" + sbIDs.ToString() + ")";
                        // 11/03/2006 Paul.  A filter might already exist, so make sure to maintain the existing filter. 
                        if (vw.RowFilter.Length > 0)
                            vw.RowFilter = " and (" + sbIDs.ToString() + ")";
                        else
                            vw.RowFilter = sbIDs.ToString();
                        nEndRecord = vw.Count;
                        break;
                    }
            }
            // 04/28/2009 baiyin. Delete the "ID" columns
            //start                        
            if (vw != null && bDeleteIDColumn)
            {
                DataTable tbl = vw.Table;
                for (int nColumn = 0; nColumn < tbl.Columns.Count; nColumn++)
                {
                    DataColumn col = tbl.Columns[nColumn];
                    if (col.ColumnName == "ID")
                    {
                        //vw.Table.Columns.RemoveAt(nColumn);
                        vw.Table.Columns.Remove("ID");
                        break;
                    }
                }
            }
            //end
            HttpResponse Response = HttpContext.Current.Response;
            StringBuilder sb = new StringBuilder();
            switch (sExportFormat)
            {
                case "csv":
                    Response.ContentType = "text/csv";
                    // 08/06/2008 yxy21969.  Make sure to encode all URLs. 
                    Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(sModuleName + ".csv"));
                    ExportDelimited(Response.OutputStream, vw, sModuleName.ToLower(), nStartRecord, nEndRecord, ',');
                    Response.End();
                    break;
                case "tab":
                    Response.ContentType = "text/txt";
                    // 08/06/2008 yxy21969.  Make sure to encode all URLs. 
                    Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(sModuleName + ".txt"));
                    ExportDelimited(Response.OutputStream, vw, sModuleName.ToLower(), nStartRecord, nEndRecord, '\t');
                    Response.End();
                    break;
                case "xml":
                    Response.ContentType = "text/xml";
                    // 08/06/2008 yxy21969.  Make sure to encode all URLs. 
                    Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(sModuleName + ".xml"));
                    ExportXml(Response.OutputStream, vw, sModuleName.ToLower(), nStartRecord, nEndRecord);
                    Response.End();
                    break;
                //case "Excel":
                default:
                    Response.ContentType = "application/vnd.ms-excel";
                    // 08/06/2008 yxy21969.  Make sure to encode all URLs. 
                    Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(sModuleName + ".xls"));
                    ExportExcel(Response.OutputStream, vw, sModuleName.ToLower(), nStartRecord, nEndRecord);
                    Response.End();
                    break;
            }
            //vw.RowFilter = null;
        }
        //end
//-----------------------------------------------------------------------------------------------------------------------------------
来自http://blog.csdn.net/lansetiankong12/article/details/50634573
C#文件下载的四种方法~有文件流,有WriteFile等
using System; 
using System.Data;  
using System.Configuration;  
using System.Web;  
using System.Web.Security;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Web.UI.WebControls.WebParts;  
using System.Web.UI.HtmlControls;  
using System.IO;  
  
public partial class _Default : System.Web.UI.Page   
{  
    protected void Page_Load(object sender, EventArgs e)  
    {  
  
    }  
  
    //TransmitFile实现下载  
    protected void Button1_Click(object sender, EventArgs e)  
    {  
        /* 
         微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite 
         下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。 
         代码如下: 
         */  
  
        Response.ContentType = "application/x-zip-compressed";  
        string FileName = "test.doc";  
        //使用UTF-8对文件名进行编码  
        Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + "\"");  
        Response.ContentType = "application/octet-stream";  
        Response.AddHeader("Content-Disposition", "attachment;filename=" + FileName);  
        string filename = Server.MapPath("../ReportTemplate/test.doc");  
        Response.TransmitFile(filename);  
    }  
  
    //WriteFile实现下载  
    protected void Button2_Click(object sender, EventArgs e)  
    {  
         /* 
         using System.IO;          
         */  
        string fileName = "test.doc";//客户端保存的文件名  
        string filePath = Server.MapPath("../ReportTemplate/test.doc");//路径  
        FileInfo fileInfo = new FileInfo(filePath);  
        Response.Clear();  
        Response.ClearContent();  
        Response.ClearHeaders();  
        Response.AddHeader("Content-Disposition", "attachment;filename=\"" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + "\"");  
        Response.AddHeader("Content-Length", fileInfo.Length.ToString());  
        Response.AddHeader("Content-Transfer-Encoding", "binary");  
        Response.ContentType = "application/octet-stream";  
        Response.WriteFile(fileInfo.FullName);  
        Response.Flush();  
        Response.End();  
    }  
  
    //WriteFile分块下载  当文件过大时候,最好是采用分块下载,避免内存溢出的问题
    protected void Button3_Click(object sender, EventArgs e)  
    {  
        string fileName = "test.doc";//客户端保存的文件名  
        string filePath = Server.MapPath("../ReportTemplate/test.doc");//路径  
  
  
        System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);  
  
  
        if (fileInfo.Exists == true)  
        {  
            const long ChunkSize = 102400; //100K 每次读取文件,只读取100K,这样可以缓解服务器的压力  
            byte[] buffer = new byte[ChunkSize];  
  
  
            Response.Clear();  
            System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);  
            long dataLengthToRead = iStream.Length; //获取下载的文件总大小  
            Response.ContentType = "application/octet-stream";  
            Response.AddHeader("Content-Disposition",  
                "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));  
            while (dataLengthToRead > 0 && Response.IsClientConnected)  
            {  
                int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize)); //读取的大小  
                Response.OutputStream.Write(buffer, 0, lengthRead);  
                Response.Flush();  
                dataLengthToRead = dataLengthToRead - lengthRead;  
            }  
            Response.Close();  
        }  
    }  
  
    //流方式下载  
    protected void Button4_Click(object sender, EventArgs e)  
    {  
        string fileName = "test.doc";//客户端保存的文件名  
        string filePath = Server.MapPath("../ReportTemplate/test.doc");//路径  
  
        //以字符流的形式下载文件  
        FileStream fs = new FileStream(filePath, FileMode.Open);  
        byte[] bytes = new byte[(int)fs.Length];  
        fs.Read(bytes, 0, bytes.Length);  
        fs.Close();  
        Response.ContentType = "application/octet-stream";  
        //通知浏览器下载文件而不是打开  
        Response.AddHeader("Content-Disposition", "attachment;  filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));  
        Response.BinaryWrite(bytes);  
        Response.Flush();  
        Response.End();  
    }  
}  
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号