Что может привести к тому, что это изображение не будет отображаться? - PullRequest
1 голос
/ 11 февраля 2011

У меня есть веб-приложение 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 ]

1 голос
/ 11 февраля 2011

Вы повторно запрашиваете изображение, используя панель обновления или какой-либо другой механизм? Вы сможете принудительно выполнить обновление, поместив что-то вроде метки времени или аналогичного параметра GET в src IMG или в ASP: Источник изображения.

0 голосов
/ 11 февраля 2011

Изображение подается из кеша, поэтому оно не отображается обновленным. Чтобы показать более новую версию того же изображения. Вы можете прикрепить строку запроса к пути изображения. Например,

<img src='/images/image.jpg?<%= DateTime.Now.Ticks %>' />
0 голосов
/ 11 февраля 2011

Вместо сохранения изображения обратно в корневой веб-каталог вы можете сохранить исходное изображение как есть и просто передать повернутое изображение клиенту.

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

, а затем в вашем RoateImage.aspx сделать то же самоезагрузить / повернуть работу и:

i.Save(Response.OutputStream, ImageFormat.Jpeg)
Response.ContentType = "image/jpeg"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...