Net: Проверьте URL Image -- image поле с участием url поле с участием verify пол Связанный проблема

NET: Verify URL is image


2
vote

проблема

русский

У меня есть требование, чтобы убедиться, что указанный пользователем URL-адрес для изображения. Поэтому на самом деле мне нужен способ определить, что строки URL указывают на действительное изображение. Как я могу сделать это в .NET?

Английский оригинал

I have a requirement to verify that a user-specified URL is to an image. So really I need a way to determine that a URL string points to a valid image. How can I do this in .NET?

</div
        

Список ответов

3
 
vote

Вы не можете сделать это без загрузки файла (хотя бы его часть). Используйте <код> WebClient , чтобы получить URL-адрес и попробуйте создать новый <код> Bitmap из возвращенного <код> byte[] . Если это было успешно, это действительно изображение. В противном случае он будет бросать исключение где-то в процессе.

Кстати, вы CAN выпускают HEAD запрос и проверьте Content-Type заголовка в ответ (если это там). Однако этот метод не является дураком. Сервер может отвечать с помощью недействительного <код> Content-Type Header.

 

You can't do that without downloading the file (at least a part of it). Use a WebClient to fetch the URL and try creating a new Bitmap from the returned byte[]. If it was successful, it's really an image. Otherwise, it will throw an exception somewhere in the process.

By the way, you can issue a HEAD request and check the Content-Type header in the response (if it's there). However, this method is not fool-proof. The server can respond with an invalid Content-Type header.

</div
 
 
 
 
2
 
vote

Я бы использовал httpwebrequest, чтобы получить заголовки, а затем проверьте тип содержимого, а длина содержимого ненульна.

 

I would use HttpWebRequest to get the headers, then check the content type, and that the content length is non-zero.

</div
 
 
0
 
vote
vote
Лучший ответ
 

Вот что я использую сейчас. Любые критики?

 <код> ID    FName     Email                        Col3      Col4 ------------------------------------------------------------------------------------ 1     Dag       yeah.right@maybe.no          Value3    (null) .... N     Kristina  my.first.love@sadness.info   Value3   Dag hasn't got this attribute. 0  
 

Here's what I'm using now. Any critiques?

public class Image {     public static bool Verifies(string url)     {         if (url == null)         {             throw new ArgumentNullException("url");         }          Uri address;          if (!Uri.TryCreate(url, UriKind.Absolute, out address))         {             return false;         }          using (var downloader = new WebClient())         {             try             {                 var image = new Bitmap(downloader.OpenRead(address));             }             catch (Exception ex)             {                 if (// Couldn't download data                     ex is WebException ||                     // Data is not an image                     ex is ArgumentException)                 {                     return false;                 }                 else                 {                     throw;                 }             }         }          return true;     } } 
</div
 
 
 
 

Связанный проблема

0  Как просматривать изображение, используя OpenFileDialog и сохранить его в папке на изображениях - Silverlight OOB - VB  ( How to browse an image using openfiledialog and save it in images folder silve ) 
Я разрабатываю приложение Silverlight OB с использованием VB, и мне нужно реализовать метод, в котором пользователь выбирает изображение (.png) файлом OpenFil...

0  Умные камеры и обработка изображений  ( Smart cameras and image processing ) 
Мне очень интересно в обращении в графический программирование и обработка изображений. Я заинтригован некоторыми программами, которые я видел, например, скан...

4  Видео Android Gallery (View) (также проблемы с миниатюрами)  ( Android gallery view video also thumbnail issues ) 
В настоящее время у нас есть вид на галерее, к которому нам нужно добавить эскизы для изображений / видео. Как мы получаем уже сгенерированные эскизы (те, кот...

1  Кэширование изображения из отклика httpclent  ( Image caching from a httpclient response ) 
Я разрабатываю приложение WP 8.1, которое содержит listView. В каждом элементе ListView есть какой-то текст и изображение. Картинки поступают с HTTP Get Proc...

1  Обнаружение изображения Touch (Cocos2D)?  ( Detecting image touch cocos2d ) 
в Cocos2D Как вы обнаружите прикосновение на изображении? У меня много проблем с этим, так что спасибо заранее! ...

0  Android: читайте изображение как большой палец во время выполнения  ( Android read image as thumb in runtime ) 
Для пользовательской галереи IM Создание с помощью GridView с ImageViews, я хочу прочитать изображение из SD Storage. Это дает мне огромные проблемы с перфоми...

3  HTML к изображению .tiff file  ( Html to image tiff file ) 
Есть ли способ преобразовать html строку в файл изображения .tiff? Я использую C # .NET 3.5. Требование состоит в том, чтобы дать пользователю возможность ф...

8  Как я могу использовать CSS для стиля нескольких изображений по-разному?  ( How can i use css to style multiple images differently ) 
Я в основном укладывая длительное эссе с различными изображениями, разбросанными по всему. Я хотел бы, чтобы первый образ «поплавок: слева» и второй, чтобы «п...

0  Странное поведение IMG тегов  ( Weird behaviour of img tags ) 
У меня есть некоторые проблемы при создании сетки DIV на странице, но каждая ячейка в сетке может иметь разные элементы в нем, как <код> <div></div> или <код...

45  Android ImageButton с отключенным пользовательским пользователем  ( Android imagebutton with disabled ui feel ) 
У меня есть ImageButton, который отключен (не на клик или установлен как отключен). Я хочу дать пользователю, чтобы пользователю оно отключено без использован...

11  Используйте PaperClip для сохранения изображений Base64, полученные из API  ( Use paperclip for saving base64 images obtained from an api ) 
У меня есть фото модель с атрибутом изображения. Изображение содержит строку Base64, полученную из API. Мне нужно запустить обратный вызов после_create, и я д...

1  OpenCV: алгоритм для простого вращения и уменьшения изображения  ( Opencv algorithm for simple image rotation and reduction ) 
Я пробовал вращение и уменьшение изображения (JPEG) с <Код> getRotationMatrix2D(center, angle, scale); и <код> warpAffine(image1, image3, rotation, image3.si...

0  CSS фоновые изображения мигает после перезагрузки страницы  ( Css background images blink after reload page ) 
У меня есть блоки на странице с фоновыми изображениями, когда я ссылаюсь (выберите ссылку) к той же странице. Как я могу установить Chache или что-то еще, что...

0  Масштаб изображения в ImageView к ширине родительского и масштаба по высоте соответственно  ( Scale image in imageview to width of the parent and scale in height accordingly ) 
Поместите все в один файл, чтобы сделать его более понятным, вместе с кодом и результатом: ...

3  Адаптер загрузки CKeditor отправляет [Обещание объекта] на сервер  ( Ckeditor upload adapter sends object promise to server ) 
Я пытался реализовать Ckeditor5 в проект Vuejs, а после получения всей рабочей инфраструктуры я не могу получить фактический файл для загрузки на сервер PHP. ...

Связанный проблема

0  Как просматривать изображение, используя OpenFileDialog и сохранить его в папке на изображениях - Silverlight OOB - VB 
0  Умные камеры и обработка изображений 
4  Видео Android Gallery (View) (также проблемы с миниатюрами) 
1  Кэширование изображения из отклика httpclent 
1  Обнаружение изображения Touch (Cocos2D)? 
0  Android: читайте изображение как большой палец во время выполнения 
3  HTML к изображению .tiff file 
8  Как я могу использовать CSS для стиля нескольких изображений по-разному? 
0  Странное поведение IMG тегов 
45  Android ImageButton с отключенным пользовательским пользователем 
11  Используйте PaperClip для сохранения изображений Base64, полученные из API 
1  OpenCV: алгоритм для простого вращения и уменьшения изображения 
0  CSS фоновые изображения мигает после перезагрузки страницы 
0  Масштаб изображения в ImageView к ширине родительского и масштаба по высоте соответственно 
3  Адаптер загрузки CKeditor отправляет [Обещание объекта] на сервер