Javascript验证以插入特定名称的文件

标签 javascript jquery asp.net validation file-upload

我想在 Javascript 中进行验证,文件名应该是特定类型,应该像示例一样上传。

我有一个文件上传控件,它具有上传多个文件的功能。

这是它的 html。

<asp:FileUpload runat="server" ID="flufileUpload" AllowMultiple="true" onchange="return ValidateFileType(this);" />

所以在上传时我希望用户上传特定名称的文件

喜欢:-

一个用户只能上传 5 个名称为 as 的文件

1 -> 120.jpg

2 -> 150.jpg

3 -> 180.jpg

4 -> 210.jpg

5 -> 240.jpg

如果用户上传的文件名不是这个那么它应该提示警告消息。

我处理一些验证的函数如下。但我无法处理文件名验证。

function ValidateFileType(controlName) {
    try {
        var uploadControl = controlName;
        var isCValidFile = false;

        for (var i = 0; i < uploadControl.files.length; i++) {
            isCValidFile = false;

            var path = uploadControl.files[i].name;
            var ext = path.substring(path.lastIndexOf(".") + 1, path.length).toLowerCase();

            if (path != "") {
                for (var j = 0; j < ValidImageFileExtension.length; j++) {
                    if (ext == ValidImageFileExtension[j]) {
                        isCValidFile = true;
                        break;
                    }
                }
                if (!isCValidFile) {
                    jAlert("Invalid File. Please upload a File with extension " + ValidImageFileExtension.join(", "), "Information");
                    uploadControl.value = '';
                    isCValidFile = false;
                    break;
                }
                else if (uploadControl.files[i].size > 15728640) {
                    jAlert("Please check file size should be less than 15 MB.", "Information");
                    uploadControl.value = '';
                    isCValidFile = false;
                    break;
                }
            }
            else {
                jAlert("Please select File", "Information");
                isCValidFile = false;
                break;
            }
        }

        return isCValidFile;

    } catch (e) {
        isCValidFile = false;
        jAlert("Error occurred on validate file.", "Error");
        return isCValidFile;
    }
}

最佳答案

您可以使用有效文件名对象检查文件名,并且您还需要知道哪个选项卡处于事件状态。你可以使用下面的代码

var Tabtype = document.getElementById('hdnType').value; 

if (Tabtype == "Panaromic") { 
    var validFileName = { 
         "120.jpg": 1, "150.jpg": 1, "180.jpg": 1, "210.jpg": 1, "240.jpg": 1, 
    } 
} 

if (Tabtype == "Satellite") { 
    var validFileName = { 
          "55.jpg": 1, "74.jpg": 1, "83.jpg": 1, "935.jpg": 1, 
    } 
} 

if (Tabtype == "SitePlot") { 
    var validFileName = 0; 
}


if (path != "") {
   if(validFileName && !isFileNameValid(path)){
       jAlert("Invalid File. Please upload a File with extension " + 
       ValidImageFileExtension.join(", "), "Information");
       uploadControl.value = '';
       isCValidFile = false;
       break;
   }
   ...

关于Javascript验证以插入特定名称的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44968035/

相关文章:

javascript - Sqlite html5在插入时复制记录

javascript - .mouseleave() 和 .mouseenter() 问题

javascript - jQuery只能在alert之后使用值

javascript - 对从 AJAX 发送到我的 Express 服务器的请求路径感到困惑

c# - 从 ASP.Net Core 1.1 迁移到 2.0 时出现 BadImageFormatException

c# - 如何将 gridview 绑定(bind)到数组

javascript - ng-show 不适用于返回的函数值?

javascript - 如何在 oi-select angularjs 中保持选中第一个选项

javascript - 使用 serialScroll jQuery 插件停止在页面中循环

asp.net - ASP.NET 中输入验证的最佳实践?