Tôi có một ứng dụng tải tệp lên máy chủ bằng cách sử dụng webclient. Tôi muốn hiển thị thanh tiến trình trong khi đang tải lên tệp. Tôi sẽ làm thế nào để đạt được điều này?Nhận tiến trình tải lên trong khi tải tệp lên bằng cách sử dụng Webclient.Uploadfile
13
A
Trả lời
18
WebClient.UploadFileAsync sẽ cho phép bạn thực hiện việc này.
WebClient webClient = new WebClient();
webClient.UploadFileAsync(address, fileName);
webClient.UploadProgressChanged += WebClientUploadProgressChanged;
...
void WebClientUploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
{
Console.WriteLine("Upload {0}% complete. ", e.ProgressPercentage);
}
Lưu ý rằng các chủ đề sẽ không chặn trên Tải lên nữa, vì vậy tôi khuyên bạn nên sử dụng:
webClient.UploadFileCompleted += WebClientUploadCompleted;
...
void WebClientUploadCompleted(object sender, UploadFileCompletedEventArgs e)
{
// The upload is finished, clean up
}
2
Thêm trình xử lý sự kiện của bạn vào WebClient.UploadProgressChanged và gọi WebClient.UploadFileAsync.
Xem tài liệu WebClient.UploadProgressChanged để biết ví dụ.
Các vấn đề liên quan
- 1. Tệp WebClient.UploadFile tải lên tệp tải lên dưới dạng dòng
- 2. Tải tệp trực tiếp lên S3 bằng thanh tiến trình
- 3. Tải lên tệp bằng Java (có thanh tiến trình)
- 4. Thanh tiến trình tải lên tệp bằng cách sử dụng RestTemplate.postForLocation
- 5. cách tải lên tệp bằng cách sử dụng tải lên tệp commons trực tuyến api
- 6. Tiến trình tải lên - Yêu cầu
- 7. Tải kích thước tệp tải lên trước khi tải lên
- 8. Tiến trình tải lên nhiều phần flex
- 9. Cách xem tệp sau khi tải tệp lên App_Data/Tải lên trong MVC 3 bằng Razor?
- 10. Sử dụng CSVHelper khi tải lên tệp
- 11. file thanh tiến trình tải lên
- 12. Tiến trình NSURLProtocol và đăng tải lên
- 13. Rails + Amazon s3 + tải lên tệp jquery: thanh tiến trình tải lên không hoạt động?
- 14. Làm cách nào để kích hoạt tệp tải lên bằng Trình tải tệp lên Valums Ajax?
- 15. HTML5: Tải lên tệp AJAX với thanh tiến trình
- 16. Tải lên tệp jQuery - cách nhận dạng khi tất cả các tệp đã tải lên
- 17. lỗi tải lên khi sử dụng carrierwave và tải lên
- 18. Tải lên trực tiếp s3 với thanh tiến trình bằng cách sử dụng php
- 19. Thanh tiến trình cho Tải lên tệp iframe?
- 20. GMail như thanh tiến trình tải tệp lên với GWT?
- 21. Tiến trình tải lên bằng cách sử dụng PHP/AJAX tinh khiết?
- 22. Trình tải lên Java/Flash có thể tải lên có thể tải lên bằng Java không?
- 23. Nhận tiến trình tải lên của các tệp riêng lẻ bằng XMLHttpRequest
- 24. Tải lên lại bằng API tải lên tệp HTML5 -
- 25. Tiến trình tải lên hình ảnh bằng cách sử dụng URLLoader AS3
- 26. Tải lên tệp bằng cách sử dụng file_get_contents
- 27. Tải lên tệp bằng RichFaces
- 28. Tải lên tệp bằng Tornado
- 29. Asp.Net tập tin tiên tiến tải lên
- 30. Tải lên tệp bằng boto
Cảm ơn. Tôi đang làm việc với đa luồng, việc tải lên tệp đã chạy trên một chuỗi khác. Vậy tôi có nên sử dụng phương thức Uploadfile hoặc phương thức UploadfileAsync không? –
Bạn vẫn cần UploadFileAsync Tôi sợ, chuỗi sẽ chặn cuộc gọi đến UploadFile để những sự kiện đó sẽ không bao giờ được gọi. Bạn có thể tạo lại chặn của riêng mình bằng cách đặt cờ bool khi bạn bắt đầu tải lên, đặt lại nó ở chế độ tải lên hoàn chỉnh, sau đó là luồng .tất cả cho đến khi cờ bị xóa. –
lưu ý: '' 'Sự kiện UploadProgressChanged''' không hoạt động tốt với phương thức' '' UploadDataAsync''' –