2016-03-08 2 views
1

Есть ли способ быстро получить изображение из предоставленной ссылки с помощью js и посмотреть, действительно ли это? Посмотрите, ссылается ли оно на обычное изображение, например, example, или обнаруживает случаи, когда некоторые веб-сайты перенаправляют вас на другие страницы, а не на изображение.Обнаружение плохих/запрещенных ссылок на изображения

+0

проверьте, заканчивается ли оно .jpg или .png ?? –

+0

Проверьте mimetype ответа? И что вы подразумеваете под «запретом»? – clinei

+0

вы можете загрузить изображение внутри atmd

ответ

2

Для простой проверки, является ли ссылка для изображения, вы можете использовать это.

function checkURL(url) { 
    return(url.match(/\.(jpeg|jpg|gif|png)$/) != null); 
} 

Если вы хотите, чтобы пуленепробиваемый способ проверки правильности изображения, вы можете использовать это.

http://jsfiddle.net/jfriend00/qKtra/

JS:

function testImage(url, callback, timeout) { 
    timeout = timeout || 5000; 
    var timedOut = false, timer; 
    var img = new Image(); 
    img.onerror = img.onabort = function() { 
     if (!timedOut) { 
      clearTimeout(timer); 
      callback(url, "error"); 
     } 
    }; 
    img.onload = function() { 
     if (!timedOut) { 
      clearTimeout(timer); 
      callback(url, "success"); 
     } 
    }; 
    img.src = url; 
    timer = setTimeout(function() { 
     timedOut = true; 
     callback(url, "timeout"); 
    }, timeout); 
} 


function record(url, result) { 
    document.body.innerHTML += "<span class='" + result + "'>" + 
     result + ": " + url + "</span><br>"; 
} 

testImage("http://photos.smugmug.com/photos/344291068_HdnTo-Ti.jpg", record); 

testImage("http://photos.smugmug.com/photos/invalid344291068_HdnTo-Ti.jpg", record); 

testImage("http://www.cnn.com/foo.jpg", record); 

testImage("https://www.google.com/images/srpr/logo3w.png", record); 

CSS:

.success { 
    color: green; 
} 
.error, .timeout { 
    color: red; 
} 
+0

проверить править, что должно работать –

2

здесь трюк с помощью JQuery:

$("<img/>") 
    .on('load', function() { console.log("image loaded correctly"); }) 
    .on('error', function() { console.log("error loading image"); }) 
    .attr("src", "image_url_here"); 

нашел решение здесь: Check if an image is loaded (no errors) in JavaScript