什么可能导致此图像无法显示?

时间:2011-02-11 02:51:39

标签: asp.net image

我有一个ASP.NET网络应用程序。我的尝试应该很简单:显示图像后,我有一个旋转按钮,允许用户将图像旋转90度。这是按钮点击代码...

    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()

此处使用的图像和按钮非常引人注目。当我创建一个只有1页的示例应用程序时,这非常有效。然而,当我进入我的主应用程序时,即使它在一个新的页面中,所有它本身没有其他任何东西,甚至不是一个母版页,它实际上旋转图像并将其写回文件系统,但它不显示旋转的文件。它显示了图像。直到我击中F5,然后,无论我按下按钮多少次,它都能完美运行。我已经尝试了一些我可以想到的东西,以清除无法获得的效果。

3 个答案:

答案 0 :(得分:1)

您是使用更新面板还是其他机制重新请求图像?您可以通过在IMG src或ASP:Image源中添加类似时间戳或类似GET参数的内容来强制刷新。

答案 1 :(得分:0)

不是将图像保存回网络根目录,而是将原始图像保持原样,然后将旋转后的图像流式传输到客户端。

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

然后在你的RoateImage.aspx中执行相同的加载/旋转工作并且:

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

答案 2 :(得分:0)

图像是从缓存中提供的,这就是未显示更新的原因。显示相同图像的较新版本。您可以将查询字符串附加到图像的路径。例如,

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