Как скачать большие видео файлы с помощью класса WebClient - PullRequest
0 голосов
/ 02 февраля 2012

Я новичок и разрабатываю приложение для Windows.Мне нужно скачать видео файл с моего сайта, и это моя проблема здесь.Я разработал собственный загрузчик, с помощью которого я могу загружать изображения, текстовые файлы с моего сайта.Но я не смог скачать видео с моего сайта.Может ли кто-нибудь помочь мне? ..

WebClient client = new WebClient();
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
client.DownloadFileAsync(new Uri("http://mysitename.com/Videos/vid.mp4"), "c:\\movie.mp4");

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

Ответы [ 2 ]

4 голосов
/ 02 февраля 2012

Я попытался загрузить видеофайл с помощью WebClient, и он работает. Моя настройка как ниже:

У меня есть виртуальный каталог (Видео) на сайте по умолчанию (IIS), в котором есть этот видеофайл.

Я просто использую приведенный ниже код для загрузки видеофайла на диск C:

var client = new WebClient();
Uri address = new Uri("http://localhost/Video/wildlife.wmv");
client.DownloadFileAsync(address, @"c:\video.wmv");

Также обратите внимание, что, поскольку вы загружаете в асинхронном режиме, подождите около минуты, пока операция завершится, чтобы загрузить весь файл. Первоначально он показывает 0 байтов, но в зависимости от размера требуется некоторое время для его завершения.

ОБНОВЛЕНИЕ: Если на вашем сервере не указан тип файлов MIME, просто добавьте в коллекцию MIME-типы, которые может обслуживать IIS, и вы можете загрузить файл без проблем.

При добавлении MIME-типа используются следующие значения (для вашего сценария):

File Extension: .mp4
MIME Type: video/mp4 

Чтобы добавить типы пантомимы в IIS, перейдите по следующим ссылкам:

  1. Для IIS 4,5
  2. Для IIS 6
  3. Для IIS 7
0 голосов
/ 02 февраля 2012

Это больше похоже на проблему с сервером, но если вы сомневаетесь в своем коде, вы можете попробовать синхронизировать загрузку (в прошлом у меня были некоторые проблемы при асинхронной загрузке).Другой способ - использовать класс WebRequest.Если этот сервер очень удаленный, попробуйте пинговать заранее.Я думаю, что вы также должны проверить, чтобы убедиться, что файл находится на сервере, и если файл действительно большой, вы должны проверить, завершил ли файл загрузку.

...