C # System.Net WebClient.DownloadData - Ошибка при получении правильных данных - PullRequest
1 голос
/ 03 июля 2011

Возможно, главная проблема в том, куда я загружаюсь - в настоящее время я использую MediaFire для загрузки своих файлов.Я протестировал загрузку файлов обоих форматов ".exe" и ".png";ни один из них, похоже, не работает для меня.

Проблема, которая постоянно возникает у меня:

Когда я пытаюсь загрузить файл, (я добавлю URL-адресадва файла в конце моего вопроса), количество извлеченных данных либо намного больше - либо намного меньше, чем фактический размер файла.Например, я загрузил пустой исполняемый файл VB6 размером 16 КБ.Размер загруженного файла составляет около 60 килобайт!

Несколько замечаний:

1) Оба файла загружаются без проблем через Chrome (и я предполагаю, что и другие браузеры также).

2) Я пробовал несколько способов извлечения данных из загруженного файла (тот же результат).

Мой код:

    // Create a new instance of the System.Net 'WebClient'
    System.Net.WebClient client = new System.Net.WebClient();

    // Download URL

    // PNG File
    string url = @"http://www.mediafire.com/imageview.php?quickkey=a16mo8gm03fv1d9&thumb=4";

    // EXE File (blank VB6 exe file @ 16kb)
    //  string url = @"http://www.mediafire.com/download.php?nn1cupi7j5ia7cb";

    // Destination
    string savePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\Test.png";

    byte[] result = client.DownloadData(url);

    MessageBox.Show(result.Length.ToString());   // Returns 57,000 something (over 3x larger than my EXE file!).

    // Write downloaded data to desired destination
    System.IO.File.WriteAllBytes(savePath, result);
...