谁用C#在FORM页面上传图片和显示图片,有原代码吗???
我上传图片的代码是这样的
OpenFileDialog ofd1=new OpenFileDialog();           ofd1.ShowDialog();
string strname=System.IO.Path.GetFileNameWithoutExtension(ofd1.FileName);
string strSQL="insert into zstudentvalues('"+tbphoto.Text.ToString()+"')";
SqlCommand cmd=new SqlCommand(strSQL,conn);  conn.Open(); cmd.ExecuteNonQuery();       conn.Close();
我将上传后查询到的代码显示出来代码是这样的 
string sqlSelect ="select distinct 照片 from zstudent ";
SqlCommand cmd=new SqlCommand(sqlSelect,conn);    conn.Open();
SqlDataReader dr;   dr=cmd.ExecuteReader();          while(dr.Read()){  Image image=Bitmap.FromFile(dr["照片"].ToString());this.pb1.Image=image;  }
可是总是报错说 路径不合法 请求高手 该怎么改啊 谢谢了 
请求高手指点 怎么修改才对啊Image image=Bitmap.FromFile(dr["照片"].ToString());this.pb1.Image=image; 
就是这里错了  这里怎么改才对啊  谢谢啊 我是直接把 图片存放在数据库的 
(如果高手有做过用流的方式 请给我具体列子的原代码 看看好吗 谢谢了 )小第感激不尽 做了两天了都没有能解决 着急啊  谢谢高手了 

解决方案 »

  1.   

    <form id="frmUpload" method="post" enctype="multipart/form-data" runat="server"><span>Title</span><br><asp:textbox id="txtTitle" runat="server" EnableViewState="False"></asp:textbox><asp:requiredfieldvalidator id="valrTitle" runat="server" ErrorMessage="* Required" ControlToValidate="txtTitle">* Required</asp:requiredfieldvalidator><br><br><span>Docutment to Upload</span><br><input id="txtFileContents" type="file" runat="server" NAME="txtFileContents"><br><br><asp:button id="btnSubmit" Text="Submit" Runat="server"></asp:button></form>
    第二步我们可以将上传的文件通过数据流保存到缓存,缓存的大小和文件的具体大小相同,我们可以使用以下的代码来取得文件的具体大小:int intDocLen = txtFileContents.PostedFile.ContentLength;然后,我们可以设置缓存的具体大小了:byte[] Docbuffer = new byte[intDoclen];这样设置以后,我们可以将上传文件的内容保存到缓存中:Stream objStream;objStream = txtFileContents.PostedFile.InputStream;objStream.Read(Docbuffer,0,intDocLen);在以上代码中,读取缓存的时候,从缓存的0位置开始,直到整个文件的长度,其实,这就是整个文件或者整个缓存的大小。第三步现在我们需要做的就是将缓存数据保存到数据库,我们已经直到数据表结构,这样,我们通过编写简单的SQL语句就可以实现这个功能。在上面的内容中,我们编写了一个存储过程,在程序中,我们只要建立SqlCommand对象并且将这个存储过程传递给它,并设置“@Doc”参数取得缓存数据就可以了:cmdUploadDoc = new SqlCommand("uSP_BooksUploadFile",BooksConn);cmdUploadDoc.CommandType = CommandType.StoredProcedure;cmdUploadDoc.Parameters.Add("@Title ",SqlDbType.VarChar,200);cmdUploadDoc.Parameters.Add("@Doc",SqlDbType.Image);cmdUploadDoc.Parameters.Add("@DocType",SqlDbType.VarChar,4);
    cmdUploadDoc.Parameters[0].Value = txtTitle.Text;cmdUploadDoc.Parameters[1].Value = Docbuffer;cmdUploadDoc.Parameters[2].Value = strDocType;
    点击按钮处理代码private void btnSubmit_Click(object sender, System.EventArgs e){
    string strDocExt;//strDocType用于保存上传文件的类型string strDocType;
    //用于保存文件大小int intDocLen;
    //Stream用于读取上传数据Stream objStream;
    SqlConnection BooksConn;SqlCommand cmdUploadDoc;
    if(IsValid){if(txtFileContents.PostedFile != null){//文件类型strDocExt = CString.Right(txtFileContents.PostedFile.FileName,4).ToLower();switch(strDocExt){case ".doc":strDocType = "doc";break;
    case ".ppt":strDocType = "ppt";break;
    case ".htm":strDocType = "htm";break;
    case ".html":strDocType = "htm";break;
    case ".jpg":strDocType = "jpg";break;
    case ".gif":strDocType = "gif";break;
    default:strDocType = "txt";break;}//上传文件具体内容
    intDocLen = txtFileContents.PostedFile.ContentLength;byte[] Docbuffer = new byte[intDocLen];
    objStream = txtFileContents.PostedFile.InputStream;
    //文件保存到缓存//缓存将保存到数据库objStream.Read(Docbuffer ,0,intDocLen);
    BooksConn = new SqlConnection("Server=Server;UID=sa;Database=Books");
    cmdUploadDoc = new SqlCommand("uSP_BooksUploadFile",BooksConn);cmdUploadDoc.CommandType = CommandType.StoredProcedure;cmdUploadDoc.Parameters.Add("@Title ",SqlDbType.VarChar,200);cmdUploadDoc.Parameters.Add("@Doc",SqlDbType.Image);cmdUploadDoc.Parameters.Add("@DocType",SqlDbType.VarChar,4);cmdUploadDoc.Parameters[0].Value = txtTitle.Text;cmdUploadDoc.Parameters[1].Value = Docbuffer ;cmdUploadDoc.Parameters[2].Value = strDocType;
    BooksConn.Open();cmdUploadDoc.ExecuteNonQuery();BooksConn.Close();}}}
      

  2.   

    大哥 WEB 页面的我知道 我说的是FORM 页面的形式的啊 老大 谢谢了