C #: Webclient Назначение размера чанка при использовании AsyncUploadData - PullRequest
1 голос
/ 25 января 2010

Я использую Webclient для загрузки данных с помощью асинхронного вызова на сервер,

    WebClient webClient = new WebClient();
   webClient.UploadDataAsync(uri , "PUT", buffer, userToken);

Я прикрепил события DatauploadProgress и DatauploadCompleted к соответствующим функциям обратного вызова

        // Upload Date Progress
        webClient.UploadProgressChanged += new 
        UploadProgressChangedEventHandler(UploadProgressCallback);

      // Upload Date Progress
     void UploadProgressCallback(object sender, UploadProgressChangedEventArgs e)
    {
        // Magic goes here 

    }

Я пытаюсь назначить частичную / частичную загрузку файла, чтобы функция обратного вызова вызывалась в выбранное периодическое время.

Примечание: я знаю, что могу использовать e.BytesSent для чтения байтов, отправленных при вызове функции обратного вызова, но это не то, что я пытаюсь сделать.

1 Ответ

2 голосов
/ 25 января 2010

Вы не можете определить этот размер чанка, так как WebClient не предоставляет никакого свойства для обработки этого.

Если вы хотите контролировать эту длину пакета, вам нужно передать ваш файл с помощьюпользовательский код, т. е. перебирая желаемый размер фрагмента и на стороне сервера реализуя System.Web.IHttpHandler, чтобы перестроить файл в правильном порядке.

...