简体   繁体   中英

What could cause this image to not display?

I have an ASP.NET web app. What I am attempting should be simple: after an image is displayed, I have a Rotate button which should allow the user to rotate the image 90 degrees. Here is the button click code...

    Dim i As Image

    i = Image.FromFile("C:\Inetpub\wwwroot\myWebApp\MyImage.jpg")


    'rotate the picture by 90 degrees
    i.RotateFlip(RotateFlipType.Rotate90FlipNone)

    're-save the picture as a Jpeg
    i.Save("C:\Inetpub\wwwroot\myWebApp\MyImage.jpg",System.Drawing.Imaging.ImageFormat.Jpeg)

    'tidy up after we've finished
    i.Dispose()

The image and button used here are non-remarkable. When I created a sample app with just 1 page this works perfectly. However, when I put in into my main app, even if its in a new page, all by itself with nothing else, not even a masterpage, it does, in fact rotate the image and write it back to the file system, but it doesn't show the rotated file. It shows the image as it was. UNTIL I hit F5, then, no matter how many times I hit the button, it works perfectly. I have tried eveything i can think of to clear the cashe to no avail.

Are you re-requesting the image using an update panel or some other mechanism? You will be able to force a refresh by putting something like a timestamp or similar GET parameter on the IMG src, or in the ASP:Image source.

Instead of saving the image back to the web root you can keep the original image as is and just stream the rotated image to the client.

<img src="RotateImage.aspx?Image=MyImage.jpg&Rotate=90" />

and then in your RoateImage.aspx do the same load/rotate work and:

i.Save(Response.OutputStream, ImageFormat.Jpeg)
Response.ContentType = "image/jpeg"

The image is served from the cache, that is why it is not shown updated. To show the newer version of the same image. You may attach a query string to the path of the image. For example,

<img src='/images/image.jpg?<%= DateTime.Now.Ticks %>' />

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM