Мне нужно активировать отправку при сохранении файла изображения в базе данных SQL 2005.
Пользователь загрузит свой файл изображения.
Затем мое приложение проверит, соответствует ли размер файла изображения определенным требованиям.
Если это так, то сохраните изображение в таблицу, где поле имеет тип данных изображения. (если размер не соответствует требованиям, отобразите сообщение об ошибке и выйдите из подпрограммы).
Проблема в том, что если я сохраню файл изображения в базе данных, значение будет сохранено правильно (однако я не проверил размер изображения).
Если я сначала проверю размер файла изображения, ТОГДА сохраню его, сохраненное значение будет повреждено (неверно).
Есть ли способ, которым я могу проверить размер файла, а затем сохранить файл при выполнении отправки в коде позади?
Мой код указан ниже:
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