2011-10-17 2 views
0

정말 구체적인 질문이 있는데 답변이 없을 것이라고 생각하지만 시도해 봅시다! Firefox 및 Chrome에서는 완벽하게 작동하지만 IE9에서는 작동하지 않는 aspx 웹 페이지가 있습니다 (트롤을 먹이지 마라 ^^).ASP.Net : 처리기를 사용하여 비동기 이미지 업로드 표시

내 목표는 ASP AjaxControlToolkit (데모는 http://www.asp.net/ajaxlibrary/AjaxControlToolkitSampleSite/asyncfileupload/asyncfileupload.aspx 참조)을 사용하여 비동기 이미지 업로드를 허용하는 것입니다. 이미지 비동기 업로드가 완료되면 UploadedComplete 함수가 호출 내가 세션 변수에 이미지를 넣어 :

byte[] buffer = (byte[])context.Session["image"]; 
context.Response.OutputStream.Write(buffer, 0, buffer.Length); 
context.Response.OutputStream.Flush(); 
: 내가 세션 변수에서 이미지를 반환 할 책임이 핸들러를 병행

if (fileSizeOk && fileTypeOk) 
     Session["image"] = this.AsyncFileUploadLogo.FileBytes; 

그런 다음 내 aspx 페이지에서, 나는 ASP가 : 이미지 필드를 매 5 초 이미지를 얻기 위해 핸들러에 요청하는 UpdatePanel에 :

<asp:UpdatePanel ID="UpdatePanelLogo" runat="server"> 
    <ContentTemplate> 
     <asp:Image ID="ImageFileUploaded" runat="server" ImageUrl="AsyncImageHandler.ashx" /> 
     <asp:Timer ID="TimerFileUploaded" Interval="5000" runat="server" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

WHE를 n 사용자가 양식의 유효성을 검사하면 세션에서 변수를 가져와야하고 다른 값을 가진 데이터베이스에 이미지를 저장합니다.

내 문제는 Firefox와 Chrome에서 타이머가 이미지를 다시 불러 오지만 Internet Explorer (IE9)에서도 F5를 누른 후에 만 ​​이미지가 표시됩니다. 처리기에 중단 점을 넣으면 IE (어쩌면 캐싱 메커니즘이라고도 함)로 호출 된 적이 없다는 것을 알 수 있습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

답변 해 주셔서 감사합니다.

+0

에 의해 트리거가 게시 이 하나의 업데이 트 패널없이 나를 위해 일하고있다 : http://nishantwork.wordpress.com/2013/01/18/how-to-upload-image-asynchronously-in-asp-net-by-c/ –

답변

0

고전적인 웹 더러운 트릭을 사용하여 솔루션을 찾았이 마지막이 각각라고 내가 PageLoad()에서 해당 라인을 추가

this.ImageFileUploaded.ImageUrl = "AsyncImageHandler.ashx?p=" + Environment.TickCount.ToString(); 

가 다시 타이머 : 내가 찾은

관련 문제