Получение загрузки прогрессирует во время использования загрузки файла Webclient. Uploadfile

Как сказал @ebutusov, * проект PS содержит реализации для Proxy и Stub . Они не являются стандартными, вместо этого они генерируются MIDL для интерфейсов, экспортируемых с вашего сервера ATL. Эти интерфейсы объявлены в файле * .IDL. Выход проекта - DLL. Вы можете прочитать эту статью , чтобы получить более подробную информацию.

Вы можете удалить проект PS из решения в случае, если вы не определяете какие-либо пользовательские интерфейсы в своем файле * .IDL или если вы определяете только интерфейсы, которые имеют модификаторы dual и oleautomation. В этом случае будет использован стандартный маршаллер typelib.

Чтобы иметь возможность использовать стандартный маршаллер typelib, необходимо зарегистрировать библиотеку типов (что делается автоматически, так как вы используете ATL)

14
задан Lenin Raj Rajasekaran 7 May 2013 в 05:29
поделиться

2 ответа

WebClient.UploadFileAsync позволит вам это сделать.

WebClient webClient = new WebClient();
webClient.UploadFileAsync(address, fileName);
webClient.UploadProgressChanged += WebClientUploadProgressChanged;

...

void WebClientUploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
{
        Console.WriteLine("Upload {0}% complete. ", e.ProgressPercentage);
}

Обратите внимание, что поток больше не будет блокироваться при загрузке, поэтому я бы рекомендовал использовать:

 webClient.UploadFileCompleted += WebClientUploadCompleted;

...

 void WebClientUploadCompleted(object sender, UploadFileCompletedEventArgs e)
 {
     // The upload is finished, clean up
 }
25
ответ дан 1 December 2019 в 10:04
поделиться

Добавьте обработчик событий в WebClient.UploadProgressChanged и вызовите WebClient.UploadFileAsync.

См. Документация WebClient.UploadProgressChanged для примера.

2
ответ дан 1 December 2019 в 10:04
поделиться