//以下是下载的代码,
string imgid =imgName.Value;
string filename;
string sql="SELECT imgtitle,imgdata,imgtype FROM ImageStore WHERE id = " + imgid;
SqlConnection connection = new SqlConnection("server=.;uid=sa;pwd=50277;database=pubs");
SqlCommand command = new SqlCommand(sql, connection);
connection.Open();
SqlDataReader dr = command.ExecuteReader();
if(dr.Read())
{
//正确显示中文文件名
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
filename="attachment;filename="+HttpUtility.UrlEncode(dr["imgtitle"].ToString(),System.Text.Encoding.UTF8);
Response.AppendHeader("Content-Disposition",filename);
Response.ContentType = dr["imgtype"].ToString();
Response.BinaryWrite((byte[]) dr["imgdata"]);
Response.End();
}
connection.Close();
//下面是数据库的表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ImageStore]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[ImageStore]
GOCREATE TABLE [dbo].[ImageStore] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[IMGTitle] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[IMGType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[IMGData] [image] NULL ,
[IMGLen] [bigint] NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
//下载的任何类型文件都只能下载的文件名,文件的内容只有几个乱码或没有东西?
各位老大帮帮忙,我这两天快被压死了!好多的东西要写!

解决方案 »

  1.   

    try: System.Text.Encoding.Default
      

  2.   

    filename="attachment;filename="+HttpUtility.UrlEncode(dr["imgtitle"].ToString(),System.Text.Encoding.Default);
      

  3.   

    Response.AddHeader("Content-Type",dr["imgtype"].ToString());
      

  4.   

    if(dr.Read())
    {
    //正确显示中文文件名
    Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
    filename="attachment;filename="+HttpUtility.UrlEncode(dr["imgtitle"].ToString(),System.Text.Encoding.UTF8);
    Response.AppendHeader("Content-Disposition",filename);
    Response.ContentType = dr["imgtype"].ToString();
    Response.BinaryWrite((byte[]) dr["imgdata"]);

    }Response.End();  //移到外面看看.不知道数据库里真有数据没?
      

  5.   

    1. 把所有数据一次读到byte[] 类型变量里.
    2. 再执行下载过程.我就这么干的.
      

  6.   

    filename="attachment;filename="+HttpUtility.UrlEncode(dr["imgtitle"].ToString(),System.Text.Encoding.UTF8);
    Response.AppendHeader("Content-Disposition",filename);
    Response.ContentType = dr["imgtype"].ToString();
    Response.BinaryWrite((byte[]) dr["imgdata"]);
      

  7.   

    if(dr.Read())
    { Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
    filename="attachment;filename="+HttpUtility.UrlEncode(dr["imgtitle"].ToString(),System.Text.Encoding.UTF8);
    Response.AppendHeader("Content-Disposition",filename);
    Response.ContentType = dr["imgtype"].ToString();
    Response.BinaryWrite((byte[]) dr["imgdata"]);
    filename="attachment;filename="+HttpUtility.UrlEncode(dr["imgtitle"].ToString(),System.Text.Encoding.Default);
    try: System.Text.Encoding.Default}