1、数据库中有一个字段存的是图片。
2、将图片读取并根据记录(.JPG或.BMP)保存图片格式。
3、图片要保存到指定的路径下。(Picture文件夹下)
希望大家能看清题目,最好给出具体代码,如果代码写的不错我会从新开贴散分,明天早上来了,问题解决就结贴。

解决方案 »

  1.   

    以下是一个从ORACLE数据库中的BLOB字段取出内容生成文件的代码,你可参考一下.public void ReadLobExample()
    {      
      int actual = 0;
      string path = "e:\\site\\aqjc\\sql\\b.doc";
      string sql = "SELECT tmp_blob FROM tmp where tmp_id = '128'";
      OracleDataReader reader = cn.GetReader(sql);
      if(reader.Read() == true)
      {
        //读取BLOB字段
        OracleLob BLOB = reader.GetOracleLob(0);
        
        this.blobOutFile(blob,path);
      }
    }/// <summary>
    /// 将ORACLE数据库中BLOB这段内容输出到硬盘上生成文件
    /// </summary>
    /// <param name="BLOB">BLOB字段内容</param>
    /// <param name="filePathName">要生成的文件名,绝对路径</param>
    public void blobOutFile(OracleLob BLOB,string filePathName)
    {
      //将LOGN值转换为INT值,以便定义BYTE[]长度
      int actual = Convert.ToInt32(BLOB.Length.ToString());
      byte[] buffer = new byte[actual];
      //将BLOB字段内容读取到字节数组里面
      BLOB.Read(buffer,0,actual);  //打开一个文件,如果没有则创建此文件
      System.IO.FileStream mys = new FileStream(filePathName,System.IO.FileMode.OpenOrCreate);
      //将读取到的内容写入到此文件中
      mys.Write(buffer,0,buffer.Length);
      //关闭此文件对象
      mys.Close();        
    }
      

  2.   

    我是这样实现的,不过不是写到一个文件,而是发送到客户端,稍微修改一下就可以用了string sql = "Select filename, type, length, content From files Where id = @id";
    SqlParameter param = new SqlParameter("@id", SqlDbType.Int);
    param.Value = Convert.ToInt32(id);
    SqlDataReader rdr = SQLHelper.ExecuteReader(SQLHelper.CONN_STRING_NON_DTC, CommandType.Text, sql, param);
    if(rdr.Read())
    {
    System.Web.HttpResponse response = Context.Response;
    response.Clear();
    response.ContentType = rdr["type"].ToString();
    response.AppendHeader("Content-Disposition","inline;filename=" + rdr["filename"].ToString());
    int FileLength = Convert.ToInt32(rdr["length"]);
    byte[] Content = new byte[FileLength]; rdr.GetBytes(3, 0, Content, 0, Content.Length);
            response.BinaryWrite(Content);
    response.Flush();
    response.End();
    }
    rdr.Close();
      

  3.   

    用流读出来然后用GDI+写出来就是了,不会很复杂,百度一下--------------------------------------------------------------
    NeT(Nebula Team)
    成都理工学生---求兼职
    MSN:[email protected]
    QQ技术群7019839        
    4329478
      

  4.   

    用流读出来然后用GDI+写出来就是了
    ----------------
    觉得这样不是实现的好办法我用和摸门槛类似的方法。
      

  5.   

    private void btnAdd_Click(object sender, System.EventArgs e)
    {
    string fullFileName=this.File1.PostedFile.FileName;
    string fileName=fullFileName.Substring(fullFileName.LastIndexOf("\\")+1);
    string type=fullFileName.Substring(fullFileName.LastIndexOf(".")+1);
    if (type=="jpg"||type=="bmp"||type=="gif")
    {
    this.File1.PostedFile.SaveAs(Server.MapPath("up")+"\\"+fileName);
    this.Image1.ImageUrl="up/"+fileName;
    }
    this.File1.PostedFile.SaveAs(Server.MapPath("up")+"\\"+fileName);
    }
      

  6.   

    1、数据库中有一个字段存的是图片。
    2、将图片读取并根据记录(.JPG或.BMP)保存图片格式。
    3、图片要保存到指定的路径下。(Picture文件夹下)
    4、图片的名字要根据数据库的记录来保存。希望大家能看清题目,最好给出具体代码,如果代码写的不错我会从新开贴散分,明天早上来了,问题解决就结贴。
    请大家帮忙,事情比较急。
      

  7.   

    hchxxzx(NET?摸到一点门槛)
    你好,你的方法很好,但是我想问问你,怎么控制图片的大小。
      

  8.   

    非常感谢hchxxzx(NET?摸到一点门槛)、leeight(睡醒了!)、losingrose()、zeusvenus(清柳,需要讨论请发消息)、 wljie(木风) 的回答。结贴!