我试图在使用javascript上传期间验证文件的函数,我已经做到了,一切都很好,工作正常,但它没有在警报中显示扩展名(我想显示文件扩展名是警报),任何人都可以让我知道问题在哪里?我已经成功地验证了大小,现在我想验证扩展。
Javascriptfunction showFileSize() {
var rt = true;
if (!window.FileReader) {
bodyAppend("p", "The file API isn't supported on this browser yet.");
rt = false;
}
inputs = document.getElementsByTagName('input');
for(var ind=0;ind<inputs.length;ind++){
var sFileName = inputs.item(ind).files[0].name;
var sFileExtension = sFileName.split('.')[sFileName.split('.').length - 1].toLowerCase();
if(inputs.item(ind).type=='file'){
if(!inputs.item(ind).files[0]){
alert("Please select file "+(ind+1)+" before clicking 'Load'");
rt = false;
}else if(inputs.item(ind).files[0].size>6000000){
console.log(inputs.item(ind).files[0].size);
alert("File size should be less then 6MB!"+sFileExtension);
rt = false;
}
}
}
//If Function True
if(rt == true){
doForm(
'{var name=form_controller}',
'manageForm',
'1',
0,
0,
1);
}
}
首先检查sFileName
的期望值(例如alert(sFileName);
)。
然后将扩展名拆分为:
var sFileExtension = sFileName.split('.').pop().toLowerCase();
试着把你的代码改成这样:
var sFileExtension = sFileName.split('.');
console.log(sFileExtension); //make sure it generates the right array
sFileExtension = sFileExtension[sFileExtension.length - 1].toLowerCase();
alert(sFileExtension);
另一种获取Array最后一个元素的方法是使用.pop(),如下所示
var sFileExtension = sFileName.split('.').pop().toLowerCase();
alert(sFileExtension);