求上传图片至数据库保存,并在客户端读取数据显示的例子?50分求解,解决结分,谢谢!

解决方案 »

  1.   

    你还不如剩下50分自己去搜索一个答案呢,又不是你首次问这个问题,下面是地址。
    http://search.csdn.net/lt/
      

  2.   

    <script language="VB" runat="server">  
      Sub UploadFile(sender As Object, e As EventArgs)  
          If FileUp.PostedFile.ContentLength = 0 Then  
      FileInfo.Visible = False  
      Exit Sub  
      Else  
      FileInfo.Visible = True  
      FDisplay1.Visible = True  
      End If     FSize.Text ="上传文件大小"+ CStr(FileUp.PostedFile.ContentLength/1024)+"KB"  
      FName.Text = "已上传文件名:"+FileUp.PostedFile.FileName+"<br>"+FName.Text     '写入数据库  
      on error resume next  
      dim myconn as sqlconnection  
      dim mycomm as sqlcommand  
      dim sql as string  
      dim id as integer  
      Dim image,anewimage As System.Drawing.Image  
      dim width,height,newwidth,newheight as integer  
      Dim callb As System.Drawing.Image.GetThumbnailImageAbort  
      myConn=New sqlconnection(ConfigurationSettings.AppSettings("数据库"))  
      myconn.open()  
      sql="insert into picture (姓名,班级,介绍,属性) values ('"&request.cookies("dgxyl").values("dgxylname")&"','"&request.cookies("dgxyl").values("dgxylbj")&"','"&trim(request("TextBox1"))&"','"&request("r1")&"')"  
      Mycomm=New sqlcommand(sql,myconn)  
      mycomm.executenonquery()  
      myconn.close()   Dim myCommand As New SqlCommand("select top 1 id from picture order by id desc", myConn)  
      myCommand.Connection.Open()  
      Dim myReader As SqlDataReader=mycommand.executereader()  
      if myReader.Read() then  
      id=myReader("id")  
      end if  
      myconn.close()  
      '保存图片  
      FileUp.PostedFile.SaveAs( Server.MapPath("\classpic\")&cstr(id)&".jpg" )  
      '生成缩略图  
      image=System.Drawing.Image.FromFile(Server.MapPath("/classpic/"+cstr(id)+".jpg"))  
      width=image.Width  
      height=image.height  
      if width>height then  
      newwidth=250  
      newheight=image.height/image.Width*newwidth  
      else  
      newheight=250  
      newwidth=image.Width/image.height*newheight  
      end if  
      response.write("id="+cstr(id)+"width="+cstr(Width)+";height="+cstr(height)+" ")  
      response.write("newwidth="+cstr(newwidth)+";newheight="+cstr(newheight)+"<br>")     aNewImage=image.GetThumbnailImage(newwidth,newheight,callb,new System.IntPtr())  
      aNewImage.Save(Server.MapPath("/smallpic/"+cstr(id)+".jpg"))  
      image.Dispose()     Dim FileSplit() As String = Split( FileUp.PostedFile.FileName, "\" )  
      Dim FileName As String = FileSplit(FileSplit.Length-1)  
      Dim Exts() As String = Split( FileName, "." )  
      Dim Ext As String = LCase(Exts(Exts.Length-1))     FDisplay.Text = "<A Target='_blank' HREF='/classpic/"&cstr(id)&".jpg"& "'>查看上传文件</A>"  
      FDisplay1.text="<a href='/picture/default.asp?bj="&cstr(request.cookies("dgxyl").values("dgxylbj"))&"'>返回</a>"  
      End Sub  
      </script>  
      <SCRIPT language=JavaScript>  
      <!--  
      var requestsubmitted=false;  
      function guestbook_Validator(theForm)  
      {  
      //检查是否从新提交  
      if (requestsubmitted==true){  
      alert("你已经提交了留言,请等待服务器应答!");  
      return(false);  
      }  
      requestsubmitted=true;     return (true);  
      }  
      //-->  
      </SCRIPT>    <Html>  
      <Body BgColor=White>  
      <H3 align="center">请正确填写下面各项</h3>  
      <Hr></H3>  
      <Div id="FileInfo" Visible="False" runat="server">  
      <Asp:Label id="FSize" runat="server"/><br>  
      <Asp:Label id="FName" runat="server"/><br>  
      <Asp:Label id="FDisplay" runat="server"/>  
      <Asp:Label id="FDisplay1" runat="server"/>  
      </Div>  
      <Form Enctype="multipart/form-data" onsubmit="return guestbook_Validator(this)" runat="server">  
      上传文件  
      <Input Type="File" id="FileUp" runat="server" size="20"><br>  
      图片属性:<input type="radio" value="<%=request.cookies("dgxyl").values("dgxylbj")%>" name="R1" checked>本班<input type="radio" value="全  校" name="R1">全校(本班则只在本班显示,全校则在全校显示)<P>  
      图片说明:<br>  
      <asp:TextBox id="TextBox1" runat="server" Width="233px" Height="141px">  
      </asp:TextBox>  
      <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="请输入图片说明">  
      </asp:RequiredFieldValidator><br>  
      <Asp:button id="Upload" OnClick="UploadFile" Text="上传图片" runat="server"/>  
      </form>  
      <Hr>  
      <p>注意:</p>  
      <ol>  
      <li><b>严禁上传污染环境的照片,否则账号将被删除!</b></li>  
      <li><font color="#808000"><b>请详细填写照片说明,图片说明不详细将会被视为乱传图片,将会被删除!</b></font></li>  
      </ol>  
      </Body>  
      </Html>
      

  3.   

    将你的 encType 属性设置为:multipart/formdata. Stream imgdatastream = File1.PostedFile.InputStream; 
    int imgdatalen = File1.PostedFile.ContentLength; 
    string imgtype = File1.PostedFile.ContentType; 
    string imgtitle = TextBox1.Text; 
    byte[] imgdata = new byte[imgdatalen]; 
    int n = imgdatastream.Read(imgdata,0,imgdatalen); 
    string connstr=((NameValueCollection)Context.GetConfig("appSettings"))["connstr"]; SqlConnection connection = new SqlConnection(connstr); SqlCommand command = new SqlCommand 
              ("INSERT INTO ImageStore(imgtitle,imgtype,imgdata) 
              VALUES ( @imgtitle, @imgtype,@imgdata )", connection ); SqlParameter paramTitle = new SqlParameter 
              ("@imgtitle", SqlDbType.VarChar,50 ); paramTitle.Value = imgtitle; 
    command.Parameters.Add( paramTitle); SqlParameter paramData = new SqlParameter( "@imgdata", SqlDbType.Image ); 
    paramData.Value = imgdata; 
    command.Parameters.Add( paramData ); SqlParameter paramType = new SqlParameter( "@imgtype", SqlDbType.VarChar,50 ); 
    paramType.Value = imgtype; 
    command.Parameters.Add( paramType ); connection.Open(); 
    int numRowsAffected = command.ExecuteNonQuery(); 
    connection.Close();    3、从数据库中恢复读取    现在让我们来从SQL Server中读取我们放入的数据吧!我们将要输出图片到你的浏览器上,你也可以将它存放到你要的位置。 private void Page_Load(object sender, System.EventArgs e) 

      string imgid =Request.QueryString["imgid"]; 
      string connstr=((NameValueCollection) 
      Context.GetConfig("appSettings"))["connstr"]; 
      string sql="SELECT imgdata, imgtype FROM ImageStore WHERE id = " + imgid; 
      SqlConnection connection = new SqlConnection(connstr); 
      SqlCommand command = new SqlCommand(sql, connection); 
      connection.Open(); 
      SqlDataReader dr = command.ExecuteReader(); 
      if(dr.Read()) 
      { 
       Response.ContentType = dr["imgtype"].ToString(); 
       Response.BinaryWrite( (byte[]) dr["imgdata"] ); 
      } 
      connection.Close(); 
    }    要注意的是Response.BinaryWrite 而不是Response.Write. 
      

  4.   

    http://hedonister.cnblogs.com/articles/210913.html
      

  5.   

    保存图片到数据库 
    http://blog.csdn.net/sunnystar365/archive/2005/10/10/498573.aspx在DataGrid中显示数据库中的图片 
    http://blog.csdn.net/sunnystar365/archive/2005/10/10/498719.aspx