在OnPreprocHeaders中,如何判断一个网址对应的文件是否真的存在?
比如,我已经知道了用户请求的网址是:/inetpub/aaa.rar,而些网址对应的文件为:
c:\inetpub\aaa.rar,那如何在这个函数里边知道这个文件是否存在?用FindFirstFile或API文件去检查该文件是否存在,不是太好的办法,因为这涉及到权限,和操作系统的限制。总之不太好,有没有别的好办法。即:我要在OnPreprocHeaders函数中,获取用户访问的网址(文件)是不是真的存在。但不用文件API去检测。

解决方案 »

  1.   

    发送HTTP请求等去Get看是否成功.
      

  2.   

    不是太好的办法,用GET去测试,这个效率太低了。用_access,是不是也涉及到权限问题?不太好。有没有什么办法,比如用GetServerVariable之类的函数做到?
      

  3.   

    在 Filter 的 OnUrlMap 中处理。PHTTP_FILTER_URL_MAP 中的  pszPhysicalPath 是URL对应的物理路径。
      

  4.   

    关键是不能在OnUrlMap函数中处理,只能在OnPreprocHeaders中处理