2011-11-17 43 views
1

我有一个ASP.NET MVC网页,有一个文件上传控制。在极少数情况下,用户引用的文件在用户触发到页面之前在文件系统上移动或删除。在IE9中,页面已成功发布,但ContentLength为零(预计),并且可以在服务器端处理。然而在Firefox中我发现POST动作永远不会到达服务器。如果文件已移动或已被删除,如何在文件上载期间检测?

有没有办法在发布页面之前检测到文件引用仍然有效?还是一种检测由于移动/删除的文件而在POST期间发生客户端错误的方法?

回答

0

仅使用input type =“file”,您无权检查该文件是否真正存在,直到进行上载尝试。有一些新兴的功能,如FileReader,它可以帮助浏览器成熟(因为它不适用于所有的浏览器),应该使上传过程更平滑(并会使这种情况更容易检测)。

如果您使用Ajax风格的上传过程,您可以立即启动上传以帮助防止问题首先发生。

或者有点怪异:Firefox的一个想法是在onsubmit事件中添加一个setTimeout,并在第二秒后触发...并检查是否启动了上传(通过使用Ajax查询服务器到JsonResult可快速查看是否开始上传的动作/功能等)。这有点麻烦,因为你需要担心时间问题 - 并且可能会矫枉过正,以处理发生这种情况的情况。

相关问题