Скопировать файл изображения с веб-URL в локальную папку?

#c# #asp.net #vb.net

#c# #asp.net #vb.net

Вопрос:

У меня есть веб-URL для изображения. Например «http://testsite.com/web/abc.jpg«. Я хочу скопировать этот URL в мою локальную папку в «c:images «; а также, когда я копирую этот файл в папку, я должен переименовать изображение в «c:imagesxyz.jpg «.

Как мы можем это сделать?

Ответ №1:

Запросите изображение и сохраните его. Например:

 byte[] data;
using (WebClient client = new WebClient()) {
  data = client.DownloadData("http://testsite.com/web/abc.jpg");
}
File.WriteAllBytes(@"c:imagesxyz.jpg", data);
  

Комментарии:

1. Мне нравится этот ответ в отличие от прямого использования DownloadFile, поскольку он дает возможность сравнить данные перед их фиксацией в файле.

Ответ №2:

Вы могли бы использовать WebClient :

 using (WebClient wc = new WebClient())
    wc.DownloadFile("http://testsite.com/web/abc.jpg", @"c:imagesxyz.jpg");
  

Это предполагает, что у вас действительно есть права на запись в C:images папку.

Комментарии:

1. Что ж, попробуйте это с URL, с которого вы авторизованы для загрузки, в противном случае вам нужно предоставить WebClient учетные данные, которые работают на целевом сервере.

Ответ №3:

это не так уж сложно. Откройте WebClient и возьмите биты, сохраните их локально….

 using ( WebClient webClient = new WebClient() ) 
{
   using (Stream stream = webClient.OpenRead(imgeUri))
   {
      using (Bitmap bitmap = new Bitmap(stream))
      {
         stream.Flush();
         stream.Close();
         bitmap.Save(saveto);
      }
   }
}
  

Комментарии:

1. Зачем вам преобразовывать изображение jpg в растровое изображение?

Ответ №4:

 string path = "~/image/"; 
string picture = "Your picture name with extention";
path = Path.Combine(Server.MapPath(path), picture);
using (WebClient wc = new WebClient())
                            {
wc.DownloadFile("http://testsite.com/web/abc.jpg", path);
                            }
  

Это работает для меня