<输入类型=“文件” />如果安装了 WINRAR,文件格式验证不起作用

<input type=“file” /> file format validation not working if WINRAR is installed

本文关键字:文件 安装 WINRAR 不起作用 验证 格式 如果 输入 类型      更新时间:2023-09-26

根据我的代码验证功能应该只接受ZIP版本。

所以它在我的第一个系统上工作,所有 3 个浏览器"IE 10、Chrome 29 和 Firfox 24",并且没有安装 WINRAR

但是现在我遇到了一些奇怪的问题,我的代码一直工作正常,直到我没有安装 WINRAR 的时候。在我安装了 WINRAR 的另一个系统上,我遇到了问题,如果我在第二个系统上也上传 ZIP 文件,它仍然提示错误"它只接受 ZIP 文件"

下面是我的代码和小提琴:

简讯

<script>
    $().ready(function () {
        // validate signup form on keyup and submit
        $("#deploymentUploadForm").validate({
            rules:{
                File: {
                    required: true,
                    accept: "application/zip,application/octet-stream,application/x-zip,application/x-zip-compressed"
                }
            },
            messages:{
                File: {
                    required: "This field is mandatory!",
                    accept: "Accepts only zip file!"
                }
            }  
        });
    });
</script>

.HTML

    <div id="wizardSteps">
            <form action="~/Deployment/FileUpload" name="deploymentUploadForm" id="deploymentUploadForm" enctype="multipart/form-data" method="post">
                <h1>Deployment</h1>
                <p>
                    <input type="file" name="File" accept="application/zip">
                </p>
                <div role="button" class="marginTop50 marginBottom">
                    <p>
                        <input type="submit" id="getDeploymentList" value="Upload" class="active" >
                    </p>
                </div>
            </form>
        </div>

小提琴 http://jsfiddle.net/aasthatuteja/rMS8D/

当我在我的第一个系统中安装 WINRAR

时,我也遇到了同样的问题(在安装 WINRAR 之前工作正常)

如果您需要其他任何东西,请告诉我。

谢谢你!

在努力寻找为什么"accept:"方法不接受由"WinRaR"创建的zip文件之后。我将"接受"方法更改为"附加方法.js中提供的"扩展" - <script src="http://jquery.bassistance.de/validate/additional-methods.js"></script>。请在下面找到最新的代码:

JQUERY:

<script>
    $().ready(function () {
        // validate signup form on keyup and submit
        $("#deploymentUploadForm").validate({
            rules:{
                File: {
                    required: true,
                    extension: "zip"
                }
            },
            messages:{
                File: {
                    required: "This field is mandatory!",
                    extension: "Accepts only zip file!"
                }
            }  
        });
    });
</script>

如果您不想包含完整的"附加方法.js,那么以下是方法:-

jQuery.validator.addMethod("extension", function(value, element, param) {
  param = typeof param === "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif";
  return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i"));
}, jQuery.format("Please enter a value with a valid extension."));

感谢大家调查这个问题!