【问题标题】:Validate the uploaded file size with jQuery form validation remote method使用 jQuery 表单验证远程方法验证上传的文件大小
【发布时间】:2011-03-21 05:08:33
【问题描述】:

我想按如下方式进行文件大小验证。请看看这个提议方法是否有意义。这部分应该可以工作。

1> After the user selects a file, I check whether the file has suffix as png, gif etc.
$("#myform").validate({
 rules: {
   fieldForUpload: {
     required: true,
     accept: "png|gif"
   }
 }
});

2> 然后我想使用aJax 方法将文件上传到服务器进行验证,甚至在用户单击提交按钮之前。 http://docs.jquery.com/Plugins/Validation/Methods/remote#url

$("#myform").validate({
  rules: {
    fieldForUpload: {
      required: true,
      accept: "png|gif"
      remote: "check-filesize.php"
    }
  }
});

这是我的问题:

1> 这种方法有效吗? 换句话说,我可以用“accept”+“remote”一起验证 fieldUpload 吗?

2>我可以强制先验证“接受”,然后验证“远程”吗?

3> 如何实现这种“远程”方法? 仅供参考:我知道如何使用远程验证数据库中是否存在电子邮件。 为了达到这个目的,我是否必须获得一些不同的知识?

非常感谢

【问题讨论】:

    标签: php jquery jquery-validate


    【解决方案1】:

    如果你想使用 jQuery 的 validate 你可以通过创建这个方法:

    $.validator.addMethod('filesize', function(value, element, param) {
        // param = size (en bytes) 
        // element = element to validate (<input>)
        // value = value of the element (file name)
        return this.optional(element) || (element.files[0].size <= param) 
    });
    

    你会使用它:

    $('#formid').validate({
        rules: { inputimage: { required: true, accept: "png|jpe?g|gif", filesize: 1048576  }
        messages: { inputimage: "File must be JPG, GIF or PNG, less than 1MB" }
    });
    

    【讨论】:

      【解决方案2】:

      您是否考虑过使用文件上传小部件?正常的表单验证需要访问表单字段。在大多数浏览器中,实际操作文件上传输入字段是不可能的。

      查看 PluploadSWFUpload,这两个基于 Flash 的文件上传小部件允许类型和文件大小限制而无需先将文件发送到服务器。

      还有Ajax UploadUploadify,这两个jQuery 插件试图使用现代浏览器功能来做同样的事情。较旧的浏览器可能没有相同级别的支持。

      【讨论】:

      • 你好 Charles,如果我使用 Ajax Upload,它如何在 jQuery Validation Plugin 中与远程连接?谢谢
      • 你不需要。该插件提供了自己的验证规则。 (此外,普通的文件输入很难在 Javascript 中使用,因此验证插件很可能无法正常工作......)
      • 你好 Charles,对于表单验证,我使用 jQuery 表单验证插件。然后为了上传文件,我只使用了一个 PHP 脚本。现在,对于 Ajax 上传,我如何使用它来满足我的要求。谢谢
      • 通过...实现它?你的问题太模糊,无法回答。此外,我从未真正使用过 Ajax Upload 插件,它只是在 Google 搜索中出现,我一点也不知道如何使用它。我强烈建议阅读链接文档以获得更多帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多