如何检查我的服务器上的文件是否存在于 jQuery 或纯 JavaScript 中?
如何检查文件是否存在于 jQuery 或纯 JavaScript 中?
IT技术
javascript
jquery
file-io
                    2021-02-07 12:36:48
                
                    
                
            
        6个回答
            使用 jQuery:
$.ajax({
    url:'http://www.example.com/somefile.ext',
    type:'HEAD',
    error: function()
    {
        //file not exists
    },
    success: function()
    {
        //file exists
    }
});
编辑:
这是检查 404 状态的代码,不使用 jQuery
function UrlExists(url)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    return http.status!=404;
}
小的变化,它可以检查状态 HTTP 状态代码 200(成功),而不是。
编辑 2:由于不推荐使用同步 XMLHttpRequest,您可以添加这样的实用方法来异步执行:
function executeIfFileExist(src, callback) {
    var xhr = new XMLHttpRequest()
    xhr.onreadystatechange = function() {
        if (this.readyState === this.DONE) {
            callback()
        }
    }
    xhr.open('HEAD', src)
}
一种类似且更新的方法。
$.get(url)
    .done(function() { 
        // exists code 
    }).fail(function() { 
        // not exists code
    })
这对我有用:
function ImageExist(url) 
{
   var img = new Image();
   img.src = url;
   return img.height != 0;
}
我用这个脚本来添加替代图像
function imgError()
{
alert('The image could not be loaded.');
}
HTML:
<img src="image.gif" onerror="imgError()" />
只要您在同一个域上测试文件,这应该可以工作:
function fileExists(url) {
    if(url){
        var req = new XMLHttpRequest();
        req.open('GET', url, false);
        req.send();
        return req.status==200;
    } else {
        return false;
    }
}
请注意,此示例使用 GET 请求,除了获取标题(检查文件是否存在所需的所有内容)之外,还获取整个文件。如果文件足够大,此方法可能需要一段时间才能完成。
更好的方式来做到这一点会改变这行:req.open('GET', url, false);到req.open('HEAD', url, false);
其它你可能感兴趣的问题