我有一个表单,我通过 jQuery 的
ajaxSubmit()
函数提交该表单。此表单包含一个文件控件,并且已被提出为一个可能的故障点,如果在提交表单之前选择、重命名、删除文件或以其他方式使其不可访问,则该表单可能会或可能不会根据以下条件提交:浏览器。虽然提交失败是预期行为,但没有向用户表明表单提交失败或原因,这被认为是一个阻碍。更糟糕的是,在 IE 中,表单提交时没有任何文件数据;虽然我可以在服务器端捕捉到这一点,但如果表单根本不提交,那就更理想了。
我知道 JavaScript 在了解有关文件系统的任何信息方面受到限制,并且我同样意识到与跨浏览器兼容性有关的任何事情都存在一些并非无关紧要的问题。当表单提交失败或者 jQuery 吞掉它时,Firefox 似乎不会抛出任何类型的异常。 IE 不知不觉地蹒跚而行。我想看看是否有办法捕获表单未提交或提交时文件无效的事实。我还想在提交之前捕获文件字段是否有问题。
有什么想法吗?
您始终可以使用 Struts2 validation 框架来验证文件对象。
fileUpload
拦截器 应用于您的操作,以便在提交表单时将 File
对象设置为您的操作。
一旦你获得了对象并且它不是
null
,你就可以继续进行某种验证。例如file.exists()
。