2011-02-17 3 views
1

아약스 파일 업로드 및 실시간 진행률 막대를 수행하려고합니다. localhost에서 테스트했으며 완벽하게 작동했습니다. 그러나 테스트를 시도했을 때 온라인 웹 서버 막대가 업로드 파일의 끝까지 업로드하지 못했습니다. 루프를 업로드 할 때 System.Threading.Sleep (값)을 넣을 때 술집이 작동하지만 업로드가 매우 느립니다.asp.net 아약스 업로드 파일 실시간 진행률 표시 줄이 작동하지 않습니다.

어떻게 해결할 수 있습니까? 내가 사용

단계 :

  1. 구성은 iframe (Upload.aspx를 가리킨)과 내부 파일 업로드.

  2. pageload javascript 함수에서 iframe 양식은 iframe 양식을 부모 페이지의 javascript 변수로 조건부로 지정하는 window.parent.register (form) 함수와 함께 호출됩니다.

  3. 부모 페이지 (Default.aspx)에서 버튼을 배치하고 제출 된 프리디 케이트 된 iframe 양식을 onclick하면됩니다. 그런 다음 javascript 간격은 매주 (1000ms) ajax 콜백 함수를 호출합니다.

  4. 이 함수 (ajax 콜백)는 세션 [ "UploadInfo"]보기입니다.

  5. iframe 양식이 iframe 페이지를 제출하면 while 루프의 파일을 (fileUpload.PostedFile.InputStream.Read (bytes, 0,1);)에서 읽는 DoUpload() 메서드를 호출 한 다음 바이트를 특정 경로에 추가하고 세션 [ "UploadInfo"]에 (1)을 추가합니다 (진행 막대가 증가합니다).

  6. DoUpload 및 Ajax 콜백 함수를 동 기적으로 사용하고 싶습니다.

  7. 웹 사이트를 실행할 때 localhost 모든 것이 정상적으로 작동하지만 웹 사이트에서 실행하면 진행률 표시 줄이 작동하지 않습니다.

주의 사항 : 내가 while 루프에서 (100) System.Threading.Thread.Sleep를 넣을 때 진행 표시 줄이 작동하지만, 매우 느립니다.

+0

어떤 코드를 사용할 수 있습니까? 당신이 사용하는 컨트롤은 무엇입니까? – Aristos

+0

문제는 코드가 너무 길기 때문에 게시 할 수 있지만 iframe 및 파일 업로드 컨트롤을 사용하여 iframe 페이지를 비동기 적으로 새로 고칠 때 발생합니다. – Star

+0

잠자리 (100)로 인해 진행률 표시 줄이 작동한다는 사실을 기반으로 파일 크기 확인을 위해 내부를 늘려야한다고합니다. –

답변

1

안녕하세요, 진행률 표시 줄 및 파일 크기 유효성 검사가 포함 된 비 플래시 파일 업로드 솔루션을 검색하는 동안 답변을 찾았습니다.

일반적으로 클라이언트 쪽 브라우저와 서버 쪽 모두에서 작동하는 플래시 또는 자바 애플릿이 필요합니다.

그러나 나는 당신이 시도한 정확한 해결책을 찾고 있습니다.

잘했으나 구현 논리에 문제가 있습니다. Javascript가 로컬 파일 시스템에 액세스 할 수 없다는 것을 잘 알고 있습니다. 따라서 AJAX에서 서버 측 코드를 사용하여 수신/업로드 된 파일의 양을 알 수 있습니다.

파일 크기를 계산하는 파일을 비동기 적으로 호출하는 것이 좋습니다. 당신이 직면 한 문제를 이해하려면 그것이 작동하는 방식을 이해할 필요가 있습니다.

파일 업로드는 브라우저 측에있는 streamreader 및 streamwriter가 서버 측의 파일 시스템으로 이루어집니다. 서버에 대한 여러 AJAX 요청에 매우 중요한 동일한 원산지 정책을 고려해야 할 수도 있습니다.

HTTP 1.1 사양에 따라 모든 브라우저는 서버에 동시에 2 개의 병렬 연결 만 전달합니다. 즉, 동일한 도메인 이름에서 2 개의 리소스 만 다운로드 할 수 있습니다.

이 옵션을 확인하고 답장을 보내주십시오. 구성 요소를 사용하는 것이 좋습니다. 나는 obout 파일 업 로더 (http://www.obout.com/Obout.Ajax.UI/FileUpload/)를 사용하고 있습니다. 나는 수년간 아주 잘 작동합니다. 이제 고객의 요구 사항에 따라 플래시가 적은 부품이 필요합니다. 그렇지 않으면 내가 파일 업로드에 사용했던 최고의 ASP.NET 구성 요소입니다.

관련 문제