<input type =“”file“”/>如果安装了WINRAR,则文件格式验证无效

时间:2013-09-27 18:08:27

标签: javascript jquery html jquery-validate winrar

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

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

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

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

JQUERY

<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之前工作正常)时,我也得到同样的问题。

如果您还有其他需要,请告诉我。

谢谢你的支持!

1 个答案:

答案 0 :(得分:0)

经过努力找出为什么“accept:”方法不接受由“WinRaR”创建的zip文件。我用“extension”更改了“accept”方法,“extension”在“additional-methods.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>

如果您不想包含完整的“additional-methods.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."));

感谢大家调查此问题!