我正在尝试使用javascript在上传期间创建一个验证文件的功能,我已经完成了,一切正常但工作正常但它没有显示警报中的扩展名(我想显示文件扩展名是警报),谁能让我知道问题在哪里?我现在已成功验证大小,我想验证扩展名。
function 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);
}
}
答案 0 :(得分:0)
首先检查sFileName
是否有预期值(例如alert(sFileName);
)。
然后将扩展名拆分更改为:
var sFileExtension = sFileName.split('.').pop().toLowerCase();
答案 1 :(得分:-1)
尝试将代码更改为:
var sFileExtension = sFileName.split('.');
console.log(sFileExtension); //make sure it generates the right array
sFileExtension = sFileExtension[sFileExtension.length - 1].toLowerCase();
alert(sFileExtension);
获取数组的最后一个元素的另一种方法是使用.pop(),就像这样
var sFileExtension = sFileName.split('.').pop().toLowerCase();
alert(sFileExtension);