Ajax文件不存在

时间:2018-05-30 13:20:47

标签: javascript jquery ajax file activexobject

我想将文件从一个目录移动到另一个目录。

我获取了所有文件以及每个文件的大小,但是当我通过ajax验证文件是否存在时,总会出现错误结果。我没有太多使用ajax,但是如果我得到了我需要的所有信息,为什么我不能移动文件?

以下是我使用的代码:

moveErrorFiles('C:/Users/romama/Desktop/HMI Versions/V 0.5/web/css');

function moveErrorFiles(fileDir){
    var fileSysObj, file, folder, fileCounter, currentFile;

    fileSysObj = new ActiveXObject("Scripting.FileSystemObject");
    folder = fileSysObj.GetFolder(fileDir);
    fileCounter = new Enumerator(folder.files);

    for (; !fileCounter.atEnd(); fileCounter.moveNext()) {
        currentFile = fileCounter.item();

        file = fileSysObj.GetFile(currentFile)
        checkFileExist(file, file.Size);
    }
}

function checkFileExist(fileToMove, size) {
    $.ajax({
        url: fileToMove,
        type: 'HEAD',
        contentType: 'image/png',
        dataType: 'text',
        cache: false,
        error: function() {
            console.log(fileToMove + "\nthis file doesn't exist... Size = " + size);
        },
        success: function() {
            console.log(fileToMove + '\nthis file exists... Size = ' + size);
        }
    });
}

以下是IE控制台中的输出:

C:\Users\romama\Desktop\HMI Versions\V 0.5\web\css\style.css
this file doesn't exist... Size = 13823
C:\Users\romama\Desktop\HMI Versions\V 0.5\web\css\styleSmall.css
this file doesn't exist... Size = 13634

2 个答案:

答案 0 :(得分:1)

这违反了浏览器的规则。

您可以阅读元数据,但无法修改/删除文件。

像Rich说的那样,这将是一个安全漏洞。

想象一下你访问了一个网站www.goofup.com,只是为了知道该网站删除了你的操作系统。

你肯定不会想那样。

答案 1 :(得分:0)

您也可以通过此功能检查文件是否存在。您无需使用AJAX来电。

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

如果AJAX不是您的唯一要求,请使用此功能。