jsoft2022 2022-01-21 10:50 采纳率: 50%
浏览 50
已结题

js判断输入文件格式遇到的问题

问题

我做了一个判断输入文件格式的程序,若输入不是指定的文件类型则提示输入格式错误。
但是无论输入什么,都会提示输入格式错误,这是为什么?

相关代码
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>JSoft Mpeg Worker</title>
  
  <style>
    
  </style>
  <script src="js/jquery.min.js"></script>

</head>
<body>
    <div class="main">
        <div>
            <strong>输入文件路径:</strong><input id="infiles" type="text" placeholder="多个文件名用';'隔开">
            <button onclick="judgeFile()">OK</button><br>
            <small id="elog" style="color:red"></small>
        </div><br>
        
        
        <h3>编辑选项</h3>
        
        
    </div>
</body>    
  <script>
        function fileType(filePath,arr){
        //判断类型
            //获取最后一个.的位置 
            var index= String(filePath).lastIndexOf("."); //获取后缀 
            var ext = String(filePath).substr(index+1);
            if(arr.indexOf(ext.toLowerCase()) == -1){ 
            return false; 
            } 
            return true;
        }
        //允许的格式
        var videoFormats=['mp4','mpg','ts','avi','wav','wmv','flv','asf','rmvb','m3u8','h263','h264','h265','dv','zlib','zmbv'];
        var audioFormats=['mp3','mp2','aac','ac3','wma','flac','dk3','dk4','mace','fla'];
        var imageFormats=['pgm','ppm','png','jpg','jpeg','gif','giff','tif','tiff','wmf','emf','bmp','sgi'];
        var srtFormats=['srt'];
        
        var filearr=[];
        function judgeFile(){
            var files=document.getElementById("infiles").value;
            if((typeof files)=="undefined"||files==""){alert("请输入文件!");return;}

            //charge files to array
            var j=0;
            for(var i=0;i==files.length;i++){
                
                if(files[i]==';'){
                    j++;
                }else if(filearr[j]==""||filearr[j]==0){
                    filearr[j]=="";
                }else{
                    filearr[j]+=files[i];
                }
            }
            //judge type
            
            for (var i=0;i==filearr.length;i++){
                if(!(fileType(filearr[i],videoFormats)||
                fileType(filearr[i],audioFormats)||
                fileType(filearr[i],imageFormats)||
                fileType(filearr[i],srtFormats))){
                    alert("输入格式错误!");
                }
            }
            
        }
 
  </script>
</html>    
运行结果及报错内容

img

这是为什么?求指教!

  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2022-01-21 11:05
    关注
    i==files.length;
    改为:
    i<files.length;
    

    下面同理

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    1人已打赏
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月21日
  • 已采纳回答 1月21日
  • 创建了问题 1月21日

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?