2011-02-11 7 views
1

저는 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를 누르기 전까지 버튼을 몇 번 눌러도 완벽하게 작동합니다. 나는 아무 쓸데없는 캐쉬를 깨끗이하기 위해 내가 생각할 수있는 일을 시도했다.

답변

1

업데이트 패널 또는 다른 메커니즘을 사용하여 이미지를 다시 요청 하시겠습니까? 타임 스탬프 나 비슷한 GET 매개 변수를 IMG src 또는 ASP : Image 소스에 넣음으로써 새로 고침을 강제 할 수 있습니다.

+0

동의합니다. 이전 이미지가 가장 많이 캐시됩니다. 브라우저로 파일 이름을 푸시하기 전에 파일 이름의 타임 스탬프를 지정합니다. – Jemes

0

이미지를 웹 루트에 다시 저장하는 대신 원래 이미지를 그대로 유지하고 회전 된 이미지를 클라이언트로 스트리밍 할 수 있습니다. 이 업데이트 표시되지 않는 이유는 즉, 이미지가 캐시에서 제공되는

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

: 당신의 RoateImage.aspx에

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

한 다음 같은로드/회전 일과을한다. 동일한 이미지의 최신 버전을 표시합니다. 이미지의 경로에 쿼리 문자열을 첨부 할 수 있습니다. 예 :

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