当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  用asp.net实现将上传的图片变小存入数据库

 用asp.net实现将上传的图片变小存入数据库

点击次数:19 次 发布日期:2008-11-26 15:48:56 作者:源代码网
源代码网推荐      changimage.aspx中代码:
源代码网推荐  <%@ Page Language="vb" AutoEventWireup="false" Codebehind="changimage.aspx.vb" Inherits="uploadimage.changimage"%>
源代码网推荐  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
源代码网推荐  <HTML>
源代码网推荐  <HEAD>
源代码网推荐  <title></title>
源代码网推荐  <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
源代码网推荐  <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
源代码网推荐  <meta name="vs_defaultClientScript" content="JavaScript">
源代码网推荐  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
源代码网推荐  </HEAD>
源代码网推荐  <body MS_POSITIONING="GridLayout">
源代码网推荐  <form id="Form1" method="post" enctype="multipart/form-data" runat="server">
源代码网推荐  <FONT face="宋体"><INPUT id="File1" style="Z-INDEX: 101; LEFT: 291px; WIDTH: 180px; POSITION: absolute; TOP: 119px; HEIGHT: 45px" type="file" size="10" name="File1" runat="server"> <asp:Button id="cmdupload" style="Z-INDEX: 103; LEFT: 402px; POSITION: absolute; TOP: 194px" runat="server" Text="上传图片" Width="81px" Height="42px"></asp:Button>
源代码网推荐  </FONT>
源代码网推荐  </form>
源代码网推荐  </body>
源代码网推荐  </HTML>
源代码网推荐  changimage.aspx.vb中代码如下:
源代码网推荐  Public Class changimage
源代码网推荐  Inherits System.Web.UI.Page
源代码网推荐  Protected WithEvents cmddemo As System.Web.UI.WebControls.Button
源代码网推荐  Protected WithEvents cmdupload As System.Web.UI.WebControls.Button
源代码网推荐  Protected WithEvents SqlConn As System.Data.SqlClient.SqlConnection
源代码网推荐  Protected WithEvents SqlComm As System.Data.SqlClient.SqlCommand
源代码网推荐  Protected WithEvents File1 As System.Web.UI.HtmlControls.HtmlInputFile #Region " Web Form Designer Generated Code " "This call is required by the Web Form Designer.
源代码网推荐  <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
源代码网推荐  Me.SqlConn = New System.Data.SqlClient.SqlConnection()
源代码网推荐  Me.SqlComm = New System.Data.SqlClient.SqlCommand() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
源代码网推荐  Form Designer
源代码网推荐  InitializeComponent()
源代码网推荐  End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
源代码网推荐  End Sub Private Sub cmdupload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdupload.Click
源代码网推荐  Dim image As System.Drawing.Image, newimage As System.Drawing.Image
源代码网推荐  Dim callb As System.Drawing.Image.GetThumbnailImageAbort
源代码网推荐  Dim f As System.IO.File, fs As System.IO.FileStream
源代码网推荐  Dim temppath As String
源代码网推荐  Dim bigdata As Byte(), smalldata As Byte() "大图片数据、小图片数据
源代码网推荐  Dim pic As System.Data.SqlClient.SqlParameter, picsmall As System.Data.SqlClient.SqlParameter
源代码网推荐  "检察上传文件是否合标准,check函数是我根据网站需要写的了
源代码网推荐  If check(File1.PostedFile.FileName) <> "ok" Then
源代码网推荐  Response.Write(check(File1.PostedFile.FileName))
源代码网推荐  Exit Sub
源代码网推荐  End If
源代码网推荐  "设置临时路径,为了防止多用户访问时的冲突,设了一个application对象
源代码网推荐  If Application("image") = "" Then
源代码网推荐  Application("image") = 0
源代码网推荐  End If
源代码网推荐  Application.Lock()
源代码网推荐  temppath = Server.MapPath(CStr(Application("image"))) "临时路径
源代码网推荐  Application("image") = Application("image") + 1
源代码网推荐  Application.UnLock()
源代码网推荐  "读取图片的数据
源代码网推荐  ReDim bigdata((Me.File1.PostedFile.InputStream.Length)
源代码网推荐  Me.File1.PostedFile.InputStream.Read(bigdata, 0, UBound(bigdata)) "将原图片数据读到bigdata中
源代码网推荐  "改变图片的大小
源代码网推荐  image = System.Drawing.Image.FromStream(Me.File1.PostedFile.InputStream)
源代码网推荐  "newimage里面的size也可另外设置,我只用了80*60和60*80两种
源代码网推荐  If image.Width > image.Height Then
源代码网推荐  newimage = image.GetThumbnailImage(80, 60, callb, New System.IntPtr(0))
源代码网推荐  Else
源代码网推荐  newimage = image.GetThumbnailImage(60, 80, callb, New System.IntPtr(0))
源代码网推荐  End If
源代码网推荐  image.Dispose()
源代码网推荐  "将新图片及图片变小后存到临时路径中
源代码网推荐  newimage.Save(temppath, System.Drawing.Imaging.ImageFormat.Jpeg)
源代码网推荐  newimage.Dispose()
源代码网推荐  "读取临时文件数据到smalldata中
源代码网推荐  fs = New System.IO.FileStream(temppath, IO.FileMode.Open, IO.FileAccess.Read)
源代码网推荐  ReDim smalldata(fs.Length)
源代码网推荐  fs.Read(smalldata, 0, UBound(smalldata))
源代码网推荐  fs.Close()
源代码网推荐  "上述获得小图片的方法我原本想用system.io.memorystream的,可是行不通:代码如下:
源代码网推荐  "dim m as system.io.memorystream
源代码网推荐  "m=new system.io.memorystream()
源代码网推荐  "newimage.save(m,System.Drawing.Imaging.ImageFormat.Jpeg)
源代码网推荐  "redim smalldata(m.length)
源代码网推荐  "m.read(smalldata,0,m.length)
源代码网推荐  "可是上述方法读出来的smalldata全是空的,不知道原因,请指教
源代码网推荐  "删除临时文件
源代码网推荐  If f.Exists(temppath) Then
源代码网推荐  f.Delete(temppath)
源代码网推荐  End If
源代码网推荐  "将数据加入数据库中
源代码网推荐  "由于数据库中有image字段,我用sql插不进去,就用一个存储过程
源代码网推荐  "请教各位大虾用sql语句插入有image字段的表该怎么写
源代码网推荐  "用insert into talbe(pic,picsmall) values("&bigdata&","&smalldata&")这样不行,用""&bigdata&""也不行呀!
源代码网推荐  SqlConn = New System.Data.SqlClient.SqlConnection(connstr) "可自己设置connstr连接数据库服务器
源代码网推荐  SqlComm = New System.Data.SqlClient.SqlCommand()
源代码网推荐  SqlComm.CommandType = CommandType.StoredProcedure
源代码网推荐  SqlComm.CommandText = "dbo.image"
源代码网推荐  pic = New System.Data.SqlClient.SqlParameter("@pic", SqlDbType.Image)
源代码网推荐  pic.Value = bigdata
源代码网推荐  picsmall = New System.Data.SqlClient.SqlParameter("@picsmall", SqlDbType.Image)
源代码网推荐  picsmall.Value = smalldata
源代码网推荐  SqlComm.Parameters.Add(pic)
源代码网推荐  SqlComm.Parameters.Add(picsmall)
源代码网推荐  SqlComm.Connection = SqlConn
源代码网推荐  SqlComm.Connection.Open()
源代码网推荐  SqlComm.ExecuteNonQuery()
源代码网推荐  SqlComm.Connection.Close()
源代码网推荐  SqlComm.Dispose()
源代码网推荐  SqlConn.Dispose()
源代码网推荐  End Sub
源代码网推荐  End Class dbo.image存储过程如下:
源代码网推荐  create proc dbo.image
源代码网推荐  @pic image,
源代码网推荐  @picsmall image
源代码网推荐  as
源代码网推荐  insert into table(pic,picsmall) values (@pic,@picsmall)
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华