文件上载的javascript表单验证

文件上载的javascript表单验证,javascript,forms,validation,Javascript,Forms,Validation,我有一个表单,其中包括3个文本字段,用户可以上传文件。他们必须选择上传至少1个文件,文件必须是jpg、png、pdf。我试图验证这使用javascript,并检查用户是否选择了至少1个文件和格式是正确的,然后再上传我有以下代码,但它不工作。我希望有人能帮忙,谢谢 我当前的代码: function validate_ext() { var filename = document.getElementById("file1").value; var filename2 = docu

我有一个表单,其中包括3个文本字段,用户可以上传文件。他们必须选择上传至少1个文件,文件必须是jpg、png、pdf。我试图验证这使用javascript,并检查用户是否选择了至少1个文件和格式是正确的,然后再上传我有以下代码,但它不工作。我希望有人能帮忙,谢谢

我当前的代码:

 function validate_ext() {
    var filename = document.getElementById("file1").value;
    var filename2 = document.getElementById("file2").value;

    var ext = getExt(filename);
    var ext2 = getExt(filename2);
    if((ext == "pdf") || (ext=="PDF") || (ext=="jpg") || (ext=="jpeg") || (ext=="png") || (ext=="PNG"))
        return true;
    alert("Please upload files in correct format only.");
    return false;

    if(filename2!=''){

     if((ext2 == "pdf") || (ext2=="PDF") || (ext2=="jpg") || (ext2=="jpeg") || (ext2=="png") || (ext2=="PNG"))
        return true;
    alert("Please upload files in correct format only.");
    return false;
    }
}


function getExt(filename) {
    var dot_pos = filename.lastIndexOf(".");
    if(dot_pos == -1)
        return "";
    return filename.substr(dot_pos+1).toLowerCase();
}
测试:

你犯了几个错误

sjums所说的扩展被转换为小写,您不需要与大写字符串进行比较。 如果第一次检查为true,那么代码只会在应该运行第二次检查时返回。
我还在末尾添加了一个return true,因此该函数只有在通过所有验证后才会返回此值。

请更具体一些。我注意到:您正在将扩展名转换为小写,但与大写相比,谢谢您的回答。我想让用户至少选择一个文件,这样他们就不必强制选择两个文件。我如何验证这一点。谢谢。代码已经做到了,因为对于file1,您没有if filename1!=您在文件2中的信息。感谢您的输入和回答。你认为我用javascript做这件事足够安全吗?还是我应该做一些额外的检查?你肯定应该在服务器上再次做这些检查。攻击者很容易跳过此JS。你至少应该有一个最大的文件大小,最好也检查mime类型,即只接受image/jpg、image/png等。我不知道你在使用什么服务器端技术,但大多数都有库为你做这些。
function getExt(filename) {
    var dot_pos = filename.lastIndexOf(".");
    if (dot_pos == -1) {
        return "";
    }
    return filename.substr(dot_pos + 1).toLowerCase();
}

function validate_ext() {
    var filename = document.getElementById("file1").value;
    var filename2 = document.getElementById("file2").value;
    var ext = getExt(filename);
    var ext2 = getExt(filename2);
    if (!((ext == "pdf") || (ext == "jpg") || (ext == "jpeg") || (ext == "png"))) {
        alert("Please upload files in correct format only.");
        return false;
    }

    if (filename2 != "") {
        if (!((ext2 == "pdf") || (ext2 == "jpg") || (ext2 == "jpeg") || (ext2 == "png"))) {
            alert("Please upload files in correct format only.");
            return false;
        }
    }

    return true;
}