jerute
asked on
Problem with Image not refreshing
Hi all
I am using image verification (CAPTCHA) on my contact form and for some reason the image is not being updated when the page refreshes. The image tag...
<asp:Image ID="verimg" runat="server" Width="100" Height="40" />
..has its imageurl property set programmatically when the new image is generated and saved (see code below) and I was expecting the image to be refreshed whenever the following two lines were executed by the code..
Dim code As String = GenerateVCodeImage()
Session("VCode") = code
..but this isn't happening.
I have also included the following three lines of code in my page_load routine to stop cacheing, but that hasn't helped..
Response.Expires = 0
Response.Cache.SetNoStore( )
Response.AppendHeader("Pra gma", "no-cache")
Can anyone suggest why my image won't refresh, or provide a better solution for displaying my generated bitmap on the contact form.
Thanks in advance
Jerute
I am using image verification (CAPTCHA) on my contact form and for some reason the image is not being updated when the page refreshes. The image tag...
<asp:Image ID="verimg" runat="server" Width="100" Height="40" />
..has its imageurl property set programmatically when the new image is generated and saved (see code below) and I was expecting the image to be refreshed whenever the following two lines were executed by the code..
Dim code As String = GenerateVCodeImage()
Session("VCode") = code
..but this isn't happening.
I have also included the following three lines of code in my page_load routine to stop cacheing, but that hasn't helped..
Response.Expires = 0
Response.Cache.SetNoStore(
Response.AppendHeader("Pra
Can anyone suggest why my image won't refresh, or provide a better solution for displaying my generated bitmap on the contact form.
Thanks in advance
Jerute
Private Function GenerateVCodeImage() As String
Dim bmfile As String = Server.MapPath("~") & "\capimage.jpg"
Dim txfile As String = Server.MapPath("~") & "\captext.txt"
Dim oBitmap As Drawing.Bitmap = New Drawing.Bitmap(90, 35)
Dim oGraphic As Drawing.Graphics = Drawing.Graphics.FromImage(oBitmap)
Dim foreColor As System.Drawing.Color
Dim backColor As System.Drawing.Color
Dim sText As String = generateVCode(5)
Dim sFont As String = "Comic Sans MS"
foreColor = System.Drawing.Color.FromArgb(220, 220, 220)
backColor = System.Drawing.Color.FromArgb(190, 190, 190)
Dim oBrush As New Drawing.Drawing2D.HatchBrush(CType(generateHatchStyle(), Drawing.Drawing2D.HatchStyle), foreColor, backColor)
Dim oBrushWrite As New Drawing.SolidBrush(Drawing.Color.Red)
oGraphic.FillRectangle(oBrush, 0, 0, 100, 50)
oGraphic.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
Dim oFont As New Drawing.Font(sFont, 14)
Dim oPoint As New Drawing.PointF(5.0F, 4.0F)
oGraphic.DrawString(sText, oFont, oBrushWrite, oPoint)
Response.ContentType = "image/jpeg"
oBitmap.Save(bmfile, Drawing.Imaging.ImageFormat.Jpeg)
oBitmap.Dispose()
verimg.ImageUrl = "capimage.jpg"
File.WriteAllText(txfile, sText)
Return sText
End Function
Private Function generateVCode(ByVal CodeLength As Integer) As String
Dim VCode As String = String.Empty
Dim randObj As New Random()
Dim c As Integer = 63
For i As Byte = 1 To CodeLength
c = randObj.Next(35)
If c >= 10 Then
c += 7
End If
c += 48
VCode += Chr(c)
Next
Return VCode
End Function
Private Function generateHatchStyle() As HatchStyle
Dim slist As New ArrayList
For Each style As HatchStyle In System.Enum.GetValues(GetType(HatchStyle))
slist.Add(style)
Next
Dim randObj As New Random()
Dim index As Integer = randObj.Next(slist.Count - 1)
Return CType(slist(index), HatchStyle)
End Function
back when i used to make websites i used to get a problem with the images not updating. Id check everything and by all means they should have refreshed. I would give up and then the next day (or sometimes a few hours later) they would have changed. Something to do with the cache server side maybe?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks for your reply Eric but I'll have to stand up to read this as it just went over my head. I've never dealt with unique IDs. Can you explain the how's and why's?
Thanks.
Thanks.
This will trick the browser into reloading the image from the server since the image name is difference. if your image name is not change, the browser probably get it from cache.
ASKER
You mistunderstand me Eric. How do I implement this GUID?
How do I assign one, and how do I use it? Can you give me an example as I have never come across the use of these before.
Thanks again.
How do I assign one, and how do I use it? Can you give me an example as I have never come across the use of these before.
Thanks again.
ASKER
A-HA!! I get it. Yes, that seems to do the trick. Thank you EW.