javascript - 用于检查文件扩展名的 javascript 问题

标签 javascript

我已经编写了用于检查文件扩展名的 javascript

 function Validate() {
    try {
        var Name = document.getElementById('<%=fiFile.ClientID %>').value;
        if (Name == "") {
            return false;
        }
        else {
            var index = Name.lastIndexOf('\\') + 1;
            var FileName = Name.substring(index, Name.length);


            var ext = extension(FileName)

            switch (ext) {
                case 'jpg':
                case 'gif':
                case 'png':
                case 'bmp':
                case 'pdf':
                case 'txt':
                case 'doc':
                case 'docx':
                case 'xls':
                case 'xlsx':
                case 'xlr':
                case 'mdf':
                case 'ppt':
                case 'pptx':
                case 'msg':
                case 'log':
                case 'bak':
                case 'xml':
                case 'html':
                case 'mp3':
                case 'm4a':
                case 'm3u':
                case 'mid':
                case 'wma':
                case 'wav':
                case 'mp4':
                case 'mpg':
                case 'm4v':
                case 'vob':
                case 'mnv':
                case 'rm':
                case 'mov':
                case 'flv':
                case 'wmv':
                        return true;
                    break;
                default:
                    alert('Select a proper file');
                    return false;
            }
        }
    }
    catch (err) {
        alert(FileName);
    }
}

function extension(fname) {
    try {
        var pos = fname.lastIndexOf(".");
        var strlen = fname.length;
        if (pos != -1 && strlen != pos + 1) {
            var ext = fname.split(".");
            var len = ext.length;
            var extension = ext[len - 1].toLowerCase();
        } else {
            extension = "No extension found";
        }
    }
    catch (errr)
    { }
    return extension;
}

当我上传其他文件(如 .exe)时,页面仍会刷新并保存文件。我希望当用户上传带有其他扩展名的文件时,页面不应该刷新并且文件不应该被保存。请帮助我!!!

最佳答案

为什么不直接使用 HTML5 方式进行文件选择?

<input type="file" accept="image/*, video/*, audio/* application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint">

您始终可以添加我遗漏的 MIME 类型或根据您的意愿进行调整,但此文件将限制要支持的文件类型,因此您不必对其进行显式检查。

关于javascript - 用于检查文件扩展名的 javascript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29071068/

相关文章:

javascript - 当提交按钮位于表单之外时使用 $.ajax 提交表单

javascript - React Native 收到此错误 'Unrecognized operator abs'

javascript - 使用 vanilla JS 重新计算更改事件的数字

javascript - i18n node.js setLocale 不工作! getLocale 始终返回默认语言环境

javascript - 如何在Leaflet ImageOverlay中使用base64字符串而不是URL

javascript - HTML DIV 位于 DIV 之上的 DIV 内

javascript - 使用 html 文本响应组件

javascript - 文件上传 Asp mvc Telerik 异步内容

javascript - 为什么 Alert 函数的执行速度比 javascript 中的任何其他函数都快?

javascript - 搜索字符串和整数表 javascript