upload jpg/png/ gif photos
<p>I was doing a test to upload pictures and i found out that when i upload pictures more than 2000px the webpage turn to be slow. I want users to upload pics with size not more than 600px and height 700px.</p>

<p>Imports System.Data
Imports System.IO
Imports System.Data.SqlClient</p>

<p>Partial Class PhotoAdmin_Default
    Inherits System.Web.UI.Page</p>

<pre><code>Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    UserIdValue.Text = Membership.GetUser().ProviderUserKey.ToString()
    cannotUploadImageMessage.Visible = False

End Sub


Protected Sub dvPictureInsert_ItemInserted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewInsertedEventArgs) Handles dvPictureInsert.ItemInserted
    'If the record was successfully inserted, save the picture
    If e.AffectedRows &gt; 0 Then
        'Determine the maximum pictureID for this user
        Dim results As DataView =
            CType(maxPictureIDDataSource.Select(DataSourceSelectArguments.Empty), 
                DataView)

        Dim pictureIDJustAdded As Integer = CType(results(0)(0), Integer)

        'Reference the FileUpload control
        Dim imageUpload As FileUpload =
            CType(dvPictureInsert.FindControl("imageUpload"), FileUpload)

        If imageUpload.HasFile Then
            Dim baseDirectory As String = Server.MapPath("~/UploadedImages/")

            imageUpload.SaveAs(baseDirectory &amp; pictureIDJustAdded &amp; ".jpg")
        End If

    End If

    If e.Exception Is Nothing Then

        ' Use the AffectedRows property to determine whether the
        ' record was inserted. Sometimes an error might occur that 
        ' does not raise an exception, but prevents the insert
        ' operation from completing.
        If e.AffectedRows = 1 Then

            MessageLabel.Text = "Record inserted successfully."

        Else

            MessageLabel.Text = "An error occurred during the insert operation."

            ' Use the KeepInInsertMode property to remain in insert mode
            ' when an error occurs during the insert operation.
            e.KeepInInsertMode = True

        End If

    Else

        ' Insert the code to handle the exception.
        MessageLabel.Text = e.Exception.Message

        ' Use the ExceptionHandled property to indicate that the 
        ' exception has already been handled.
        e.ExceptionHandled = True
        e.KeepInInsertMode = True

    End If

End Sub



Protected Sub dvPictureInsert_ItemInserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewInsertEventArgs) Handles dvPictureInsert.ItemInserting
    Dim cancelInsert As Boolean = False


    Dim imageUpload As FileUpload =
        CType(dvPictureInsert.FindControl("imageUpload"), FileUpload)

    If Not imageUpload.HasFile Then
        cancelInsert = True
    Else
        If Not imageUpload.FileName.ToUpper().EndsWith(".JPG") Then
            cancelInsert = True 'Invalid image file!

        End If
    End If

    If cancelInsert Then
        e.Cancel = True
        cannotUploadImageMessage.Visible = True
    End If

    'Set the UserId value to the currently logged on user's ID
    e.Values("UserId") = Membership.GetUser().ProviderUserKey

    'Set the UploadedOn value to the current date/time
    e.Values("UploadedOn") = DateTime.Now
End Sub

Protected Sub gvPictures_RowDeleted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeletedEventArgs) Handles gvPictures.RowDeleted
    Dim baseDirectory As String = Server.MapPath("~/UploadedImages/")
    Dim fileName As String = baseDirectory &amp;
        e.Keys("PictureID") &amp; ".jpg"
    File.Delete(fileName)
End Sub

Protected Sub gvPictures_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gvPictures.RowUpdating
    e.NewValues("UserId") = Membership.GetUser().ProviderUserKey
End Sub
</code></pre>

<p>End Class</p>
