#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);
}
Это работает для меня