if this were my project, I would never store image data in the database (I'm a PHP developer and know the difficulties) -- I'm firmly against that and the unnecessary complexity of doing so. however, it isn't my choice.

anyway, to answer your questions -- this is the code on my form that gets an uploaded file (there is an abstract class here that is used to only allow certain mime types, by the way):
vb Code:
  1. Private Function GetUploadedPhoto(ByVal UploadedFile As FileUpload) As Byte()
  2.         Dim Photo As Byte() = Nothing
  3.         If UploadedFile.HasFile AndAlso UploadedFile.PostedFile IsNot Nothing Then
  4.             Dim Extension As String = Path.GetExtension(UploadedFile.PostedFile.FileName).ToLower
  5.             Dim MIMEType As String = "image/" + Extension.Replace(".", "")
  6.             If WebClient.UI.Handlers.AbstractStreamableImage.ImageFormats.ContainsValue(MIMEType) Then
  7.                 Dim Length As Long = UploadedFile.PostedFile.InputStream.Length
  8.                 Dim ImageBytes(Length) As Byte
  9.                 UploadedFile.PostedFile.InputStream.Read(ImageBytes, 0, Length)
  10.                 Photo = ImageBytes
  11.             Else
  12.                 Throw New Exception("Invalid file type uploaded - only picture files are allowed.")
  13.             End If
  14.         End If
  15.         Return Photo
  16.     End Function
then, in my event handler for adding:
vb Code:
  1. Dim aLargePhoto As Byte() = GetUploadedPhoto(LargePhotoUpload)
  2.                 Dim aThumbnailPhoto As Byte() = GetUploadedPhoto(ThumbnailPhotoUpload)
  3.  
  4.                 Dim Item As ProductPhoto = New ProductPhoto(aThumbnailPhoto, ThumbnailFilename.Text, aLargePhoto, LargePhotoFilename.Text)

yes, I have an HTTPHandler that is reading the image. my business object has a readonly method that uses MemoryStream (like in the post you linked to) to stream the Byte() and create a new Bitmap() out of it, and returns an Image. for example:
vb Code:
  1. Private _thumbnailPhotoImage As Image = Nothing
  2.     Public ReadOnly Property ThumbnailPhotoImage() As Image
  3.         Get
  4.             If _thumbnailPhotoImage Is Nothing Then
  5.                 If ThumbnailPhoto IsNot Nothing Then
  6.                     Dim Stream As MemoryStream = New MemoryStream(ThumbnailPhoto)
  7.                     _thumbnailPhotoImage = New Bitmap(Stream)
  8.                 End If
  9.             End If
  10.             Return _thumbnailPhotoImage
  11.         End Get
  12.     End Property
and I do the same for the larger photo.

this is the handler I'm using to load the images:
vb Code:
  1. <%@ WebHandler Language="VB" Class="Handler" %>
  2.  
  3. Imports System
  4. Imports System.Drawing
  5. Imports System.Web
  6. Imports System.IO
  7. Imports WebClient.UI.Handlers
  8.  
  9. Public Class Handler : Implements IHttpHandler
  10.     Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
  11.         Try
  12.             Dim SizeParam As String = context.Request.Params("Size")
  13.             Dim IDParam As String = context.Request.Params("ID")
  14.             Dim ID As Integer
  15.             Dim Streamer As AbstractStreamableImage = Nothing
  16.             If Not String.IsNullOrEmpty(SizeParam) AndAlso Integer.TryParse(IDParam, ID) Then
  17.                 Select Case SizeParam.ToLower
  18.                     Case "large"
  19.                         Streamer = New ProductPhotoImage(ID, True) 'second parameter is a boolean of whether or not the size is large
  20.                     Case "thumbnail"
  21.                         Streamer = New ProductPhotoImage(ID, False)
  22.                 End Select
  23.             End If
  24.             If Streamer Is Nothing OrElse Streamer.StreamableImage Is Nothing Then
  25.                 Streamer = New DefaultImage("")
  26.             End If
  27.             Streamer.Write(context.Response)
  28.         Catch ex As Exception
  29.             context.Response.ContentType = "text/plain"
  30.             context.Response.Write("no image")
  31.         End Try
  32.         context.Response.Cache.SetCacheability(HttpCacheability.NoCache)
  33.     End Sub
  34.  
  35.     Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
  36.         Get
  37.             Return False
  38.         End Get
  39.     End Property
  40.  
  41. End Class

and the ProductPhotoImage class that it's using simply looks up the data in the database, populates a business object, and returns it depending on the size used (_large is a boolean variable for either thumbnail/large photo). this class is based off of an abstract class that I can also post if needed:
vb Code:
  1. Imports Microsoft.VisualBasic
  2. Imports System.Drawing
  3. Imports System.Drawing.Imaging
  4. Imports System.IO
  5. Imports AWSystem.Data
  6. Imports AWSystem.BLL
  7.  
  8. Namespace WebClient.UI.Handlers
  9.     Public Class ProductPhotoImage
  10.         Inherits AbstractStreamableImage
  11.  
  12.         Private _productPhotoID As Integer
  13.         Private _large As Boolean
  14.  
  15.         Public Sub New(ByVal pProductPhotoID As Integer, Optional ByVal pLarge As Boolean = True)
  16.             _productPhotoID = pProductPhotoID
  17.             _large = pLarge
  18.         End Sub
  19.  
  20.         Public Overrides ReadOnly Property StreamableImage() As Image
  21.             Get
  22.                 If _StreamableImage Is Nothing Then
  23.  
  24.                     Dim Controller As New ProductPhotoController()
  25.                     Dim Info As ProductPhoto = Controller.Lookup(_productPhotoID)
  26.                     Dim ProductPhoto As Image = Nothing
  27.  
  28.                     If Info IsNot Nothing Then
  29.                         If _large Then
  30.                             _StreamableImage = Info.LargePhotoImage
  31.                         Else
  32.                             _StreamableImage = Info.ThumbnailPhotoImage
  33.                         End If
  34.                     End If
  35.                 End If
  36.  
  37.                 Return _StreamableImage
  38.             End Get
  39.         End Property
  40.     End Class
  41. End Namespace

however, the fact that all the other images display fine leads me to believe that my HTTPHandler and my readonly properties are working correctly.

I'll take a look at some more of the code in the thread you posted and try a few things (though most of it looks very similar already at just a glance), and thanks for the reply!