2012-01-18 3 views
3

Я пытаюсь загрузить изображение из URL-адреса. У URL-адреса есть ключ безопасности, добавленный до конца, и я продолжаю получать следующую ошибку: System.Net.WebException: Исключение произошло во время запроса WebClient. ---> System.ArgumentException: Недопустимые символы в путиASP.NET Загрузить файл изображения с URL-адреса с помощью querystring

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

string remoteImgPath = "https://mysource.com/2012-08-01/Images/front/y/123456789.jpg?api_key=RgTYUSXe7783u45sRR"; 
string fileName = Path.GetFileName(remoteImgPath); 
string localPath = AppDomain.CurrentDomain.BaseDirectory + "LocalFolder\\Images\\Originals\\" + fileName; 
WebClient webClient = new WebClient(); 
webClient.DownloadFile(remoteImgPath, localPath); 
return localPath; 
+1

Я не думаю, что 'Path.GetFileName' делает то, что вы думаете, что он делает. –

+0

возвращает имя файла и расширение указанной строки пути А, я даже не смотрел там. Мне нужно разбить файл, чтобы он не захватывал строку запроса в локальном пути к файлу. – user204588

+0

Брайан, вот и все. Человек, у меня был, когда ты пропустил что-то настолько очевидное. Вы хотите поместить свой ответ, и я отметю его? – user204588

ответ

8

Я думаю, что это то, что вы ищете:

string remoteImgPath = "https://mysource.com/2012-08-01/Images/front/y/123456789.jpg?api_key=RgTYUSXe7783u45sRR"; 
Uri remoteImgPathUri = new Uri(remoteImgPath); 
string remoteImgPathWithoutQuery = remoteImgPathUri.GetLeftPart(UriPartial.Path); 
string fileName = Path.GetFileName(remoteImgPathWithoutQuery); 
string localPath = AppDomain.CurrentDomain.BaseDirectory + "LocalFolder\\Images\\Originals\\" + fileName; 
WebClient webClient = new WebClient(); 
webClient.DownloadFile(remoteImgPath, localPath); 
return localPath; 
+0

Удивительный ответ .. –

Смежные вопросы