我有一个要通过jQuery's .ajaxSubmit()
函数提交的表格。该表单包含一个文件控件,如果在提交表单之前重命名,删除所选文件或以其他方式使该文件不可访问,则该表单可能会导致失败,这可能是由于失败导致的,这取决于浏览器,该表单可能会也可能不会提交。尽管未能提交是预期的行为,但没有向用户指示表单提交失败或原因为何,这被认为是制止者。更糟糕的是,在IE中,表单提交时没有任何文件数据。尽管我可以在服务器端了解此信息,但如果表单根本不提交,那将是更理想的选择。
我知道JavaScript被限制在能够了解有关文件系统的任何事情上,并且类似地,我知道与跨浏览器兼容性有关的任何问题都存在一些无关紧要的问题。当表单提交失败或jQuery吞下它时,Firefox似乎没有引发任何异常。 IE浏览器显然会蹒跚前进。我想看看是否有一种方法可以捕获表格未提交或使用无效文件提交的事实。我也想捕获提交前文件字段是否存在问题。
有什么想法吗?
您始终可以使用Struts2 validation框架来验证文件对象。将fileUpload
interceptor应用于您的操作,以便在提交表单时将fileUpload
对象设置为您的操作。一旦获得对象但它不是File
,则可以进行某种验证。例如null
。