【问题标题】:validate file type before upload [duplicate]上传前验证文件类型[重复]
【发布时间】:2013-10-29 20:24:21
【问题描述】:

默认的 jquery-file-upload 函数在上传文件之前没有任何验证。

我想将上传限制为仅 pdf 文件。

我在js文件夹中找到了jquery.fileupload-validate.js文件,但是不知道怎么修改这个文件。

请帮助我。 我在 jquery-file-upload $.blueimp.fileupload.prototype.options.processQueue.push( { action: 'validate', // Always trigger this action, // even if the previous action was rejected: always: true, // Options taken from the global options map: acceptFileTypes: '@', maxFileSize: '@', minFileSize: '@', maxNumberOfFiles: '@', disabled: '@disableValidation' } 中找到了这一行 但是不知道怎么改。

【问题讨论】:

  • 请务必在服务器端验证文件的安全性 - 恶意用户很容易绕过客户端检查。
  • 如果检查扩展名还不够,使用HTML5 FileReader 也可能会有所帮助。
  • 我在服务器端验证文件类型。但我想在客户端验证文件类型。

标签: jquery


【解决方案1】:

在您验证表单或仅文件上传使用的 js 文件中

<script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script>
<script src="http://jquery.bassistance.de/validate/additional-methods.js"></script>

jQuery.validator.setDefaults({
  debug: true,
  success: "valid"
  });
  $("#form").validate({
    rules:
      'image': {
        required: true
        accept: "application/pdf"
      }
   }, 
    messages: {
      "image": {
        required: "Please upload only pdf files."
      }
    },
    submitHandler: function(form) {
    form.submit();
    }
  });
});

【讨论】:

  • 我在 jquery-file-upload 中找到了这行 ` $.blueimp.fileupload.prototype.options.processQueue.push( { action: 'validate', // 总是触发这个动作, // 甚至如果先前的操作被拒绝:always: true, // 从全局选项映射中获取的选项:acceptFileTypes: '@', maxFileSize: '@', minFileSize: '@', maxNumberOfFiles: '@', disabled: '@disableValidation ' }` 但我不知道如何更改它。
  • 您不需要更改您的blueimp javascript文件中的任何代码..只需将验证放在您调用文件上传功能的位置
  • 查看此链接了解更多信息forum.jquery.com/topic/…
【解决方案2】:

您接受在 jquery 中验证文件上传的方法,例如

accept= "application/pdf"

希望这个链接对你有帮助http://jqueryvalidation.org/accept-method/

【讨论】:

  • 谢谢。我知道。但我不知道如何修改 jquery-file-upload 插件以添加限制
猜你喜欢
  • 2012-07-29
  • 2013-03-13
  • 2013-12-14
  • 2016-01-18
  • 1970-01-01
  • 2010-09-09
  • 2012-07-31
  • 2014-01-23
  • 1970-01-01
相关资源
最近更新 更多