我有一个网格,它提供了一些用户下载文件的链接。文件存储在应用程序之外,从数据库中读取路径引用,并使用HTTP处理程序(* .ashx)为每个请求的文件提供服务。但是,可能会有数据库条目指向不存在的文件。我找到FileNotFoundException
,但我不确定什么是最好的方法来通知用户丢失的文件(以便他们可以联系支持)。在文件下载HTTP处理程序中处理404的最佳方法?
第一个想法是在响应上设置一个标准的404代码,这就是我现在所做的。
更有用的方法是显示关于缺少文件的通知(jQuery),但文件下载不是在AJAX中完成的,因此这涉及到两个步骤 - 客户端onclick处理程序调用Web服务方法检查文件是否存在,如果不存在,则取消点击(返回false)并向用户显示友好的消息。如果文件存在,然后我继续正常执行。但是这又增加了另一个服务器调用。
你有没有处理过类似的问题?你是如何解决它的?
一些说明 - 应用程序构建在ASP.NET 2.0中,并使用jQuery调用Web服务方法。
但是,我不能区分缺少的文件情况和整个页面丢失时。我可以在404页面上提供一些更详细的解释,例如“如果您尝试下载文件联系人支持,如果您尝试访问无法找到的页面”等)。 – 2009-03-04 11:57:40