我正在使用PHP和jQuery编写一个表单。我有一个文件上传域,我对它应用了以下jQuery-validate规则:
image: {
accept: "jpeg|jpg|png|gif",
required: "#edit_ID:blank"
}文件上载域只能接受jpeg/jpg、png或gif图像。仅当ID为"edit_ID“的字段保留为空时才需要。
这是我的文件上传域:
<input type="file" id="image" name="image" class="input1" />文件上传域选择没有任何问题的文件,但是当jQuery由于违反规则而返回错误时,即使我从我的计算机中选择了一个新文件,在出现错误之前我选择的文件仍然存在。这就好像在jQuery-validate给出一个错误之后,它被禁用了。
我尝试删除为该字段设置的规则,并对其进行了测试,没有遇到任何问题。
有谁知道是什么导致了这个问题吗?
谢谢。
附注:我在Firefox (v.3.6.9)和IE (v.8)中遇到了这个问题,但在Google Chrome (v.5)中没有。
发布于 2010-09-21 21:42:51
从技术上讲,这不会回答您最初的问题。
但是,信任客户端编程来进行图像验证并不是一个好主意;您的程序可能会被愚弄。既然你正在使用PHP,为什么不使用PHP来做一些服务器端的验证呢?
上传的所有文件都存储在$_FILES数组中。您可以像这样检查文件类型:
<?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,而不是仅仅依靠客户端进行验证。
https://stackoverflow.com/questions/3759131
复制相似问题