Pues bien, la solución nos la da AJAX. Pedimos la cabecera del archivo que queremos comprobar y si nos devuelve un 404 es que no existe, así de fácil. Sé que al leer AJAX tendemos a tirar por jQuery, pero en este caso, al ser algo tan sencillo voy a explicarlo en JavaScript puro, que siempre es más rápido que tener que cargar un framework.
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status!=404;
}
Como puedes ver, ni siquiera necesitas cargar el archivo ya que solicitamos sólo el ‘HEAD’ (no hacemos ni GET ni POST), por lo que aunque sea de 100 megas tendrás una respuesta rápida. La misma función se podría hacer preguntando si el status es 200, que sería que existe el fichero y la cabecera del mismo es correcta.
Por cierto, el false del open es para que la consulta sea síncrona y así el return se ejecute cuando haya terminado de solicitar la cabecera, no vaya a ser que la conexión sea muy pobre y no le de tiempo a hacer el send antes de tener la respuesta del open. La url es relativa al sitio web.
Muy interesante, me sirve, por favor me colabora cómo utilizo la función para mandarle una url para que verifique?
Yo lo que necesito es verificar si puedo mostrar una imagen en html que existe en el hosting; de lo contrario, mostrar otra.