¿Cómo verifico si el archivo existe en jQuery o JavaScript puro?

Resuelto usertest asked hace 14 años • 19 respuestas

¿Cómo verifico si un archivo en mi servidor existe en jQuery o JavaScript puro?

usertest avatar Sep 06 '10 00:09 usertest
Aceptado

Con jQuery:

$.ajax({
    url:'http://www.example.com/somefile.ext',
    type:'HEAD',
    error: function()
    {
        //file not exists
    },
    success: function()
    {
        //file exists
    }
});

EDITAR:

Aquí está el código para verificar el estado 404, sin usar jQuery

function UrlExists(url)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    return http.status!=404;
}

Pequeños cambios y podría verificar el estado Código de estado HTTP 200 (éxito), en su lugar.

EDITAR 2: dado que la sincronización XMLHttpRequest está obsoleta, puede agregar un método de utilidad como este para hacerlo de forma asíncrona:

function executeIfFileExist(src, callback) {
    var xhr = new XMLHttpRequest()
    xhr.onreadystatechange = function() {
        if (this.readyState === this.DONE) {
            callback()
        }
    }
    xhr.open('HEAD', src)
}
cichy avatar Sep 05 '2010 17:09 cichy

Un enfoque similar y más actualizado.

$.get(url)
    .done(function() { 
        // exists code 
    }).fail(function() { 
        // not exists code
    })
Matthew James Davis avatar Feb 04 '2013 17:02 Matthew James Davis