Public
Class changimage
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.HtmlInputFileWeb Form Designer Generated Code#Region " Web Form Designer Generated Code " 'This call is required by the Web Form Designer. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()Sub InitializeComponent() Me.SqlConn = New System.Data.SqlClient.SqlConnection() Me.SqlComm = New System.Data.SqlClient.SqlCommand() End Sub Private Sub Page_Init()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()Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub cmdupload_Click()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 SubEnd Class
转载请注明原文地址: https://ibbs.8miu.com/read-19160.html