使用JavaScript检查本地文件是否存在

时间:2017-07-24 17:41:08

标签: javascript

我正在托管我上传网站的apache服务器,但部署速度非常慢(而且它已经停机了一周)所以我喜欢在本地进行测试以进行开发。它依赖于外部文件,因此我在Google Chrome上使用--allow-file-access-from-files标记,以便JavaScript正常运行。

我的问题是我想在新标签中打开之前检查文件是否存在,而我无法正常工作。我试过this回答,但是它使用了JQuery,我宁愿不使用它。在那个没有使用JQuery的SO问题中的回答在多个问题中是一个很受欢迎的问题,但它似乎并不适合我。我的想法是它对我不起作用,因为它创建了一个我认为不能访问本地文件的XMLHttpRequest()

我知道在正常情况下通过JavaScript执行此操作会违反安全性并且不允许,但自从我添加--allow-file-access-from-files标记以来,我的测试从未出现任何问题。这可能不使用JQuery / ajax吗?

此代码目前适用于我,但它使用JQuery

$.ajax({
    url:'test.pdf',
    type:'HEAD',
    error: function()
    {
        console.log("file doesn't exist");
    },
    success: function()
    {
        console.log("file exists");
    }
});

虽然此代码不起作用,但使用vanilla JS

function UrlExists(url)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    return http.status!=404;
}
if (UrlExists('test.pdf')) {
    console.log("file exists");
}
else {
    console.log("File doesn't exist");
}

文件test.pdf不存在于正确的目录中。 JQuery代码输出"文件不存在"而JS代码则抛出错误。

0 个答案:

没有答案