문제

내가 노력하고 파일을 업로드 또는 스트림 데이터의 웹 서버와 나는 괜찮은 방법이 있습니다.가 모두 WebClientWebRequest 모두가 그들의 문제입니다.

웹메일
좋은 쉽게 하지만 당신이하지 않는 모든 통보는 비동기로 업로드를 완료하고, UploadProgressChanged 이벤트 안을 얻으로 다시 아무것도 유용합니다.대안을 변환하는 것입니다 이진 데이터 문자열을 사용하여 UploadStringASync 다음 때문에 적어도 당신 UploadStringCompleted, 문제는 당신이 많이 필요 ram 큰 파일로 인코딩하는 모든 데이터를 업로드됩니다.

된 플러그 가능한
조금 더 복잡하지만 아직도 무엇이 필요한 문제는 내가 받은 것도 그것은이라고 백그라운드 스레드에서(아마도),그것은 여전히 차단 내 UI 와 전 브라우저까지 업로드를 완료했을 것입니다.

정상입니다.순이가 어떤 적절 WebClient 방법 OnUploadDataCompleted 고 진행하지만 이중에서 사용 가능한 Silverlight.순...큰 누락 나는 생각한다!

람 솔루션이 필요하드 바이너리 파일 좋으로 진행하고 몇 가지 작업을 수행할 때 파일을 완료들은 업로드 할 수 있습니다.

앞으로 어떤 도움이 됩니다.

도움이 되었습니까?

해결책

방법은 내가 주위에 얻을 통해 INotifyPropertyChanged 및 이벤트 알림입니다.

Essentials:

 public void DoIt(){
this.IsUploading = True;    

        WebRequest postRequest = WebRequest.Create(new Uri(ServiceURL));

        postRequest.BeginGetRequestStream(new AsyncCallback(RequestOpened), postRequest);
    }

private void RequestOpened(IAsyncResult result){
      WebRequest req = result.AsyncState as WebRequest;
   req.BeginGetResponse(new AsyncCallback(GetResponse), req);
    }

  private void GetResponse(IAsyncResult result)
        {
            WebRequest req = result.AsyncState as WebRequest;
              string  serverresult = string.Empty;
              WebResponse postResponse = req.EndGetResponse(result);

              StreamReader responseReader = new StreamReader(postResponse.GetResponseStream());

this.IsUploading= False;
}

 private Bool_IsUploading;
        public Bool IsUploading
        {
            get { return _IsUploading; }
          private  set
            {

                _IsUploading = value;

                OnPropertyChanged("IsUploading");
            }
        }

지금 silverlight 는 피타기 때문에 더블 트리플 비동기 호출합니다.

다른 팁

감사,문제는 내가 볼 수 있는 문서가는 그에 대해 이야기하지 않 Silverlight,Silverlight 기능이 제한되어,어떤 이유로 그들이 일부 제거되었을 필요한 이벤트와 방법에 대한 전송 바이너리 설치를 지원합니다.

를 사용해야 한다 Silverlight 으로 필요/고 싶은 여러 파일을 업로드 및 HTML 허용하지 않기 위해 여러 파일을 업로드 할 수 있습니다.

매트 Berseth 했고 일부는 생각에 이것은,도움이 될 수 있:

http://mattberseth.com/blog/2008/07/aspnet_file_upload_with_realti_1.html

@Dan -사과 메이트,나 등 맹세하시 매트의 문서에 대한 Silverlight,하지만 그것은 아주 명확하지 않습니다.비난에 그는 두 개의 큰 잔 칠레 붉은 내가 단지더라고요.:-)

이 꽤 많은 내가 무슨 일을 하고 있었는 문제가 되었는 내 UI 지고 있었습니다.

당신이 제안한 대로 내가 무엇을 하고 있었고 이미,나는 문제는 다른 곳에서 내가 사용하는 오래된 나누고 정복을 좁히 문제가고 그것이 실제 업데이트 코드,그것은 나도 Dispatch 요청을 업데이트 내 동안 진행 상태를 업로드 스트림의 코드입니다.

감사에 대한 조언입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top