保存在服务器sqlserver数据库中的image字段中的文件,怎样下载到服务器指定的目录?

解决方案 »

  1.   

    首先,我们来看实现数据显示的类,代码如下:namespace UploadSample {
    public class MainDisplay : System.Web.UI.Page {
    public void Page_Load(System.Object sender, System.EventArgs e) {
    int ImgID = System.Convert.ToInt32(Request.QueryString["ImgID"]);System.Data.OleDb.OleDbConnection Con = new System.Data.OleDb.OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;" +"Integrated Security=SSPI;Initial Catalog=northwind");System.String SqlCmd = "SELECT * FROM Images WHERE ImageID = ?";System.Data.OleDb.OleDbCommand OleDbCmdObj = new System.Data.OleDb.OleDbCommand(SqlCmd, Con);OleDbCmdObj.Parameters.Add("@ImageID", System.Data.OleDb.OleDbType.Integer).Value = ImgID;
    Con.Open();
    System.Data.OleDb.OleDbDataReader OleReader = OleDbCmdObj.ExecuteReader();OleReader.Read();
    Response.ContentType = (string)OleReader["ContentType"];
    Response.OutputStream.Write((byte[])OleReader["Image"], 0, (int)OleReader["ByteSize"]);
    Response.End();
    Con.Close();
    }
    }
    }在以上的代码中,我们实现使用Request.QueryString["ImgID"]取得要求显示的图片的ImgID,这个ImgID就是图片在数据库中的唯一ID,该ID是上传图像数据的时候,数据库直接生成的。在上面代码中,我们需要注意的就是图像的生成部分,当DataReader从数据库取得图像数据以后,不能直接和其他文本数据一样显示在页面,而应该首先设置数据类型ContentType,这里,数据类型就是使用我们上传数据的时候添加的数据类型,用(string)OleReader["ContentType"]取得;然后使用Write方法将数据显示在页面;最好,使用End方法结束数据输出。
      

  2.   

    拜托,已经够明白啦,还指望别人写好了直接COPY啊,动动脑子吧