首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在jQuery-validate返回错误后,upload字段不能选择一个新文件?

为什么在jQuery-validate返回错误后,upload字段不能选择一个新文件?
EN

Stack Overflow用户
提问于 2010-09-21 17:55:26
回答 1查看 590关注 0票数 0

我正在使用PHP和jQuery编写一个表单。我有一个文件上传域,我对它应用了以下jQuery-validate规则:

代码语言:javascript
复制
image: {
 accept: "jpeg|jpg|png|gif",
 required: "#edit_ID:blank"
}

文件上载域只能接受jpeg/jpg、png或gif图像。仅当ID为"edit_ID“的字段保留为空时才需要。

这是我的文件上传域:

代码语言:javascript
复制
<input type="file" id="image" name="image" class="input1" />

文件上传域选择没有任何问题的文件,但是当jQuery由于违反规则而返回错误时,即使我从我的计算机中选择了一个新文件,在出现错误之前我选择的文件仍然存在。这就好像在jQuery-validate给出一个错误之后,它被禁用了。

我尝试删除为该字段设置的规则,并对其进行了测试,没有遇到任何问题。

有谁知道是什么导致了这个问题吗?

谢谢。

附注:我在Firefox (v.3.6.9)和IE (v.8)中遇到了这个问题,但在Google Chrome (v.5)中没有。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-21 21:42:51

从技术上讲,这不会回答您最初的问题。

但是,信任客户端编程来进行图像验证并不是一个好主意;您的程序可能会被愚弄。既然你正在使用PHP,为什么不使用PHP来做一些服务器端的验证呢?

上传的所有文件都存储在$_FILES数组中。您可以像这样检查文件类型:

代码语言:javascript
复制
<?php
    foreach($_FILES as $file)
    {
        if(!empty($file['type'])) //only check if there's a valid file type
        {
            if($file['type'] != 'image/jpeg' && $file['type'] != 'image/png' && $file['type'] != 'image/gif')
            {
                //this file is not any one of the accepted formats, so long!
            }
            else{//do your processing}
        }
        else{//error invalid file}
    }
?>

如果您需要即时验证,您仍然可以使用AJAX,而不是仅仅依靠客户端进行验证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3759131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档