2012-09-18 2 views
0

사용자가 이메일에 첨부 파일을 추가 할 수있는 페이지가 있습니다. 클릭하여 첨부 파일 업로드를 시작하면 자바 스크립트를 실행하여 읽을 레이블을 설정합니다 (예 : '4 중 1 파일 업로드 중')각 파일이 서버에 업로드 될 때 브라우저를 업데이트하십시오.

업로드를 처리하는 코드는 다음과 같습니다. 각 파일이 저장 될 때마다 (예를 들어) '파일 1 업로드'라는 브라우저 레이블을 업데이트하려고합니다. 업로드 파일 2/4 '. 기타

파일을 업데이트 할 때 브라우저에 알림을 보내려면 어떤 기술을 사용할 수 있습니까? 진행률 표시 줄이 필요하지 않습니다.

HttpFileCollection hfc = Request.Files; 
for (int i = 0; i < hfc.Count; i++) 
{ 
HttpPostedFile hpf = hfc[i]; 
if (hpf.ContentLength > 0) 
    { 
    hpf.SaveAs(path + ReturnValue.ToString() + "\\" + Path.GetFileName(hpf.FileName)); 
    //This is where I want to update the browser so the user is informed as each file is uploaded 
    } 
} 

는 그 아무것도 할 것이 있다면 바로 볼 수 <script type="text/javascript">alert('File 1 uploaded')</script>를 작성 Response.Write를 사용하여 시도. 그러나 그것은 효과가 없습니다.

ScriptManager.RegisterStartUpScript을 사용하여 함수를 호출했지만 작동하지 않았습니다.

+0

[무엇을 시도 했습니까?] (http://whathaveyoutried.com)? 어디서 붙어 있니? 어떤 생각을 했습니까? – Oded

+0

Response.Write를 사용하여 ; 및 Response.Flush(); 그게 뭐든지 할 수 있는지 알기 위해서 요. 그러나 그것은 효과가 없습니다. ScriptManager.RegisterStartUpScript를 사용하여 함수를 호출했지만 작동하지 않았습니다. 솔직히 무엇을하려고하는지 전혀 몰라서 전에 이것을 할 필요가 없습니다. 일반적으로 서버에서 수행중인 모든 작업이 완료된 후에 브라우저에 작업을 작성합니다. –

답변

1

일반적인 접근 방법은 AJAX를 사용하여 서버 측에서 웹 메소드를 폴링하는 것입니다. 이는 현재 데이터를 리턴하는 메소드입니다.

이 문제 중 하나는 서버가 세션 동기화를 사용할 수 있으므로 세션이없는 웹 메서드를 사용해야한다는 것입니다.

+0

웹 메소드는 웹 서비스의 한 방법입니다. 이해하지 못해 죄송합니다. 아마도 AJAX를 사용하여 웹 메소드를 폴링하는 방법을 알아낼 수는 있지만 웹 메소드는 어떻게할까요? 업로드하는 파일에 대해 어떻게 알 수 있습니까? –

+0

@MartinSmellworse - 당신은 그러한 방법이 선택할 수있는 공유 데이터가 필요하고 웹 페이지가 업데이트됩니다. – Oded

관련 문제