Как скачать файл без расширения в C # - PullRequest
1 голос
/ 29 сентября 2010

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

Когда я использую веб-запрос или веб-клиент для загрузки файла, я получаю исключение "404 файл не найден".

        WebClient wc = new WebClient();

        Stream strm = wc.DownloadFile("http://some_site.some_domain/some_image.","C:/some_directory/save_name.some_extention");

Обратите внимание на отсутствие расширения в конце URL. На рассматриваемом сайте изображение отображается нормально в веб-браузере, но при просмотре только изображения расширение отсутствует, и поэтому он обрабатывается неизвестным файлом (без изображения).

Проще говоря: как загрузить файл, если не указано расширение?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 29 сентября 2010

Это будет моим лучшим предложением, если это не сработает, я не знаю, как решить вашу проблему ...

List<string> fileExtensions = new List<string>(){"png","gif","bmp","jpg"}// other known image file extensions here...

WebClient wc = new WebClient();
foreach(var extension in fileExtensions)
{
  try
  {     wc.DownloadFile("http://some_site.some_domain/some_image."+extension,"C:/some_directory/save_name."+extension);
   break;
  }
  catch {}
}

Полагаю, это будет обходной путь ... Не реальное решение ...

0 голосов
/ 29 сентября 2010

То есть вы пытаетесь определить, какое расширение дать файлу после загрузки?Если URL-адрес не имеет такового, вам придется проверить фактические данные файла.

Возможно, вы сможете проверить начало файла и посмотреть, соответствует ли он известным допустимым типам файлов.Например, PNG, кажется, имеют 'PNG' в виде байтов 2-4 (по крайней мере, в тех, которые я проверял).Глядя на эти данные, вы сможете определить формат с довольно высокой точностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...