Hi..
In this article i am going to explain about How to validate uploaded image in to database.For an every image contain some unique Hexadecimal code,By comparing the code with upload image ,we can easily find out the image is real or not,Its one of the easiest technique i found.
For your refrence in previous article i explain about How to upload text file in database..
http://vbdotnetaddict.blogspot.com/2011/02/upload-file-in-aspnet-using-vb-coding.html
Follow the below process and code...
Before in SQL you have to create a table like this..
GO
CREATE TABLE [dbo].[upload](
[fileid] [int] IDENTITY(1,1) NOT NULL,
[ImageName] [varchar](max) COLLATE SQL_Latin1_General_CP1_CS_AS NULL,
[Image] [image] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
'client side coding
If FileUpload1.HasFile Then
Dim imageSize As Byte()
Dim intlength As Integer
Dim bytes1() As Byte = pstFile(FileUpload1) 'This fuction is used to Read Bytes from the upload File
If filech(bytes1) = False Then 'This Function used to check upload file is image or Not
Label1.Text = "Not Real Image file"
Exit Sub
End If
' Create SQL Connection
Dim con As New SqlConnection()
con.ConnectionString = ConfigurationManager.ConnectionStrings("phone").ConnectionString
intlength = Convert.ToInt32(FileUpload1.PostedFile.InputStream.Length)
Dim cmd As New SqlCommand()
cmd.CommandText = "INSERT INTO upload(ImageName,Image) VALUES (@ImageName,@Image)"
cmd.CommandType = CommandType.Text
cmd.Connection = con
Dim ImageName As New SqlParameter("@ImageName", SqlDbType.VarChar, 50)
ImageName.Value = TextBox1.Text.ToString
cmd.Parameters.Add(ImageName)
Dim imagelenth As New SqlParameter("@Image", SqlDbType.Image)
imagelenth.Value = bytes1
cmd.Parameters.Add(imagelenth)
con.Open()
Dim result As Integer = cmd.ExecuteNonQuery()
con.Close()
Else
Label1.Text = "please select the file to uplaod"
End If
'This Function used to check upload file is image or Not........
Function filech(ByVal byte1 As Byte()) As Boolean
Dim fileheader As New Dictionary(Of String, Byte())
fileheader.Add("JPG", New Byte() {&HFF, &HD8, &HFF, &HE0})
fileheader.Add("JPEG", New Byte() {&HFF, &HD8, &HFF, &HE0})
fileheader.Add("PNG", New Byte() {&H89, &H50, &H4E, &H47})
fileheader.Add("TIF", New Byte() {&H49, &H49, &H2A, &H0})
fileheader.Add("TIFF", New Byte() {&H49, &H49, &H2A, &H0})
fileheader.Add("GIF", New Byte() {&H47, &H49, &H46, &H38})
fileheader.Add("BMP", New Byte() {&H42, &H4D})
fileheader.Add("ICO", New Byte() {&H0, &H0, &H1, &H0})
Dim ext As String
Dim tmp As Byte()
Dim fheadr As Byte()
If FileUpload1.HasFile Then
ext = FileUpload1.FileName.Substring(FileUpload1.FileName.LastIndexOf(".") + 1).ToUpper
tmp = fileheader(ext)
fheadr = New Byte(tmp.Length - 1) {}
For i As Integer = 0 To tmp.Length - 1
If tmp(i) <> byte1(i) Then
Return False
Exit For
Else
Return True
End If
Next
End If
End Function
'This fuction is used to Read Bytes from the upload File
Function pstFile(ByVal passfile As FileUpload) As Byte()
Dim fs As Stream
Dim bytes1 As Byte()
Dim postfile As Byte()
fs = passfile.PostedFile.InputStream
Dim br1 As New BinaryReader(fs)
bytes1 = br1.ReadBytes(passfile.FileContent.Length)
postfile = bytes1
Return postfile
End Function
I hope this one really helpful to you........
0 comments:
Post a Comment