在csdn上泡了几乎一夜,将图片上传到数据库(access)实现了,可是无论我怎么努力,也不能正常显示,老是有问题,请各位高人帮我看一下吧,先谢谢了.附代码:<%@ Page Language="VB"  ContentType = "image/gif"%>
<%@ Import Namespace="system.data.oledb" %>
<%@ Import Namespace = "System.Drawing" %>
<%@ Import Namespace ="System.Data" %>
<%@ Import Namespace= "System.io"  %>
<%@ Import Namespace = "System.Drawing.Imaging" %><script runat="server">
    Sub page_load()
        Dim strConString, strchkuser As String        Dim conStr As OleDbConnection
        Dim cmdchkuser As OleDbCommand
        Dim objctbg As Bitmap
               Dim FileByte() As Byte
        
        strConString = ConfigurationManager.ConnectionStrings("conString").ConnectionString
        conStr = New OleDbConnection(strConString)
        strchkuser = "Select BinImage From image Where ImageID=102"
        cmdchkuser = New OleDbCommand(strchkuser, conStr)
        conStr.Open()        FileByte = cmdchkuser.ExecuteScalar()        Dim mStream As New MemoryStream(FileByte)
        mStream.Write(FileByte, 0, FileByte.Length)
        objctbg = New Bitmap(mstream)        objctbg.Save(Response.OutputStream, ImageFormat.Gif)              conStr.Close()    End Sub
   </script>注:开发环境 vs2005英文版,xpsp2中文版,asp.net2.0,vb.net

解决方案 »

  1.   

    高手都睡觉去了吗?我翻遍了csdn也没找到解决方案
      

  2.   

    高手都睡觉去了吗?我翻遍了csdn也没找到解决方案
      

  3.   

    http://singlepine.cnblogs.com/articles/288027.html
      

  4.   

    写入数据库//上传
    if(myFile.ContentLength != 0)
    {
      try
      {
        System.Web.HttpPostedFile myFile = this.Request.Files[0];
    //        string tmpFileName = myFile.FileName;
    //        string myFileName = tmpFileName.Substring(tmpFileName.LastIndexOf("."));
    //        string myFileMimeType = myFile.ContentType();
    //        myFile.SaveAs(this.Server.MapPath("../" + myFileName));    //读取到数组里面
        System.IO.Stream mystream = myFile.InputStream;
        byte[] Buffer = new byte[myFile.ContentLength];
        mystream.Read(Buffer,0,myFile.ContentLength);    //打开数据库
        OracleConnection cn = new OracleConnection(ConfigurationSettings.AppSettings["sysDSN"]);
        cn.Open();    //用参数方式写入数据库
        OracleCommand myComm = cn.CreateCommand();
        string sql = "insert into tmp(tmp_id,tmp_blob) values(tmp_seq.nextval,:tmp_blob)";
        myComm.CommandText = sql;
        myComm.Parameters.Add(":tmp_blob",OracleType.Blob,Buffer.Length).Value = Buffer;
        myComm.ExecuteNonQuery();
      }
      catch
      {
        //此处可加错误显示
      }
      finally
      {        
        cn.Close();
      }
    }
    在页面中,放一个Image控件,在后台指定它的链接地址如下:
    ----------------------------------------------------------------------
    //为方便,写一个固定ID号tmp_id=103
    this.Image1.ImageUrl = "showimg.aspx?tmp_id=103" ;
    下面是显示图片的页面showimg.aspx后台代码,该页面不需要放任何东西.
    --------------------------------------------------------------------
    //创建数据库连接
    OracleConnection myConnection = new OracleConnection(ConfigurationSettings.AppSettings["sysDSN"]);
    myConnection.Open();//打开数据库
    OracleCommand myCommand = myConnection.CreateCommand();
    string sql = "select tmp_blob from tmp where tmp_id = 103";
    myCommand.CommandText = sql;
    OracleDataReader myRead = myCommand.ExecuteReader();//开始读取
    myRead.Read();
    //这个方法更直接
    Byte[] Buffer = (Byte[])myRead[0];
    //OracleLob myLob = myRead.GetOracleLob(0);
    //长度是long,转为int32
    //int myLength = Convert.ToInt32(myLob.Length);  
    //Byte[] Buffer = new byte[myLength];      
    //myLob.Read(Buffer,0,myLength);//输出
    this.Response.Clear();
    //输出mime类型,根据上传的文件取到的mimetype,是什么我忘记了,自己写上,不过不写也没有关系.
    this.Response.ContentType = "";
    this.Response.BinaryWrite(Buffer);
    this.Response.End();
      

  5.   

    多谢
    hchxxzx(NET?摸到一点门槛)以后用就有的参考了