为什么我的功能不显示文件扩展名

Why my function does not showing file extension?

本文关键字:显示文件 扩展名 功能 我的 为什么      更新时间:2023-09-26

我试图在使用javascript上传期间验证文件的函数,我已经做到了,一切都很好,工作正常,但它没有在警报中显示扩展名(我想显示文件扩展名是警报),任何人都可以让我知道问题在哪里?我已经成功地验证了大小,现在我想验证扩展。

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);
    }

}

首先检查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);