在asp.net应用程序中触发提交

在asp.net应用程序中触发提交,asp.net,sql-server,vb.net,image,Asp.net,Sql Server,Vb.net,Image,在SQL 2005数据库中保存图像文件时,我需要触发提交 用户将上载其图像文件。 然后,我的应用程序将检查图像文件大小是否符合特定要求。 如果是,则将图像保存到一个表中,该表中的字段为图像数据类型。(如果尺寸不符合要求,则显示错误消息并退出sub) 问题是,如果我将图像文件保存到数据库中,该值会正确保存(但是,我没有检查图像大小) 如果我先检查图像文件大小,然后保存,则保存的值已损坏(不正确) 是否有一种方法可以检查文件大小,然后在执行代码隐藏提交时保存文件 我的代码如下:

在SQL 2005数据库中保存图像文件时,我需要触发提交

用户将上载其图像文件。
然后,我的应用程序将检查图像文件大小是否符合特定要求。
如果是,则将图像保存到一个表中,该表中的字段为图像数据类型。(如果尺寸不符合要求,则显示错误消息并退出sub)

问题是,如果我将图像文件保存到数据库中,该值会正确保存(但是,我没有检查图像大小)

如果我先检查图像文件大小,然后保存,则保存的值已损坏(不正确)

是否有一种方法可以检查文件大小,然后在执行代码隐藏提交时保存文件

我的代码如下:

            Dim iRequiredImageHeight As Integer = 80
            Dim iRequiredImageWidth As Integer = 280

            Dim imgBytes(FileUpload1.PostedFile.InputStream.Length) As Byte
            Dim stream As System.IO.Stream = FileUpload1.PostedFile.InputStream
            stream.InitializeLifetimeService()
            stream.Read(imgBytes, 0, imgBytes.Length)

            Dim imgData As System.Drawing.Image = System.Drawing.Image.FromStream(stream)
            Dim imgWidth As Integer = imgData.PhysicalDimension.Width
            Dim imgHeight As Integer = imgData.PhysicalDimension.Height

            If imgHeight > iRequiredImageHeight Or imgHeight > iRequiredImageWidth Then
                lblLogoMessage.Text = "The image you have uploaded is " & imgHeight & "px height by " & imgWidth & "px width. <br/> Required image size is " & iRequiredImageHeight & "px height by " & iRequiredImageWidth & "px width. <br/> Please resize the image and try again."
                lblLogoMessage.ForeColor = Drawing.Color.Red
                lblLogoMessage.Visible = True
                bLogoFit = False
            Else

                Dim LogoFile As String = FileUpload1.FileName.ToString.Trim
                Dim FileBytes(FileUpload1.PostedFile.InputStream.Length) As Byte

                FileUpload1.PostedFile.InputStream.Read(FileBytes, 0, FileBytes.Length)

                Dim SQL As String = "update CorpLogo "
                SQL += "set HeaderLogoName = @LogoFile, LogoImage = @LogoBytes "
                SQL += " where isonum='100'"

                Dim myConn As New SqlConnection(connString)
                Dim SQLcmd As New SqlCommand(SQL, myConn)
                SQLcmd.Parameters.AddWithValue("@LogoFile", LogoFile)
                SQLcmd.Parameters.AddWithValue("@LogoBytes", FileBytes)

                myConn.Open()
                SQLcmd.ExecuteNonQuery()
                myConn.Close()
            End If
Dim iRequiredImageHeight为整数=80
Dim iRequiredImageWidth为整数=280
将imgBytes(FileUpload1.PostedFile.InputStream.Length)调整为字节
Dim stream As System.IO.stream=FileUpload1.PostedFile.InputStream
stream.InitializeLifetimeService()的
stream.Read(imgBytes,0,imgBytes.Length)
将imgData调整为System.Drawing.Image=System.Drawing.Image.FromStream(流)
Dim imgWidth As Integer=imgData.PhysicalDimension.Width
Dim imgHeight作为整数=imgData.PhysicalDimension.Height
如果imgHeight>i需要图像高度或imgHeight>i需要图像宽度,则
lblLogoMessage.Text=“您上载的图像是”&imgHeight&“px height by”&imgWidth&“px width”。
所需图像大小是“&iRequiredImageHeight&“px height by”&iRequiredImageWidth&“px width”。
请调整图像大小,然后重试。” lblLogoMessage.ForeColor=Drawing.Color.Red lblLogoMessage.Visible=True bLogoFit=False 其他的 Dim LogoFile As String=FileUpload1.FileName.ToString.Trim Dim FileBytes(FileUpload1.PostedFile.InputStream.Length)作为字节 FileUpload1.PostedFile.InputStream.Read(FileBytes,0,FileBytes.Length) Dim SQL As String=“update CorpLogo” SQL+=“set-HeaderLogName=@LogoFile,LogoImage=@LogoBytes” SQL+=“其中isonum='100'” Dim myConn作为新的SqlConnection(connString) Dim SQLcmd作为新的SqlCommand(SQL,myConn) SQLcmd.Parameters.AddWithValue(“@LogoFile”,LogoFile) SQLcmd.Parameters.AddWithValue(“@LogoBytes”,FileBytes) myConn.Open() SQLcmd.ExecuteNonQuery() myConn.Close() 如果结束
请注意,您已经解决了问题。小溪就像消防水带。它将“水”从一个位置移动到另一个位置。一旦您从流中提取,您正在寻找的比特就不再存在,因为它们已经被提取到某个位置,而不是“保留在流中”。简言之,流是从一个持久位置到另一个持久位置的桥梁。一旦项目清除了流,它们就不再存在


这就是为什么在获得位后无法获得位(损坏)。

请简要说明,因为您已经解决了问题。小溪就像消防水带。它将“水”从一个位置移动到另一个位置。一旦您从流中提取,您正在寻找的比特就不再存在,因为它们已经被提取到某个位置,而不是“保留在流中”。简言之,流是从一个持久位置到另一个持久位置的桥梁。一旦项目清除了流,它们就不再存在


这就是为什么在获得位之后无法获得位(损坏)。

为什么您的值会损坏?你在用任何方式改变图像吗?不,没有用任何方式改变图像。啊。。你正在看两遍这条小溪。。也许这就是问题所在???从来没有这样做过…是的,我在看两遍这条流。好吧,就看一次!!读两遍有什么意义?为什么你的价值观会被破坏?你在用任何方式改变图像吗?不,没有用任何方式改变图像。啊。。你正在看两遍这条小溪。。也许这就是问题所在???从来没有这样做过…是的,我在看两遍这条流。好吧,就看一次!!读两遍有什么意义?