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