问题的提出
互联网的发展为我们的生活带来了巨大变化,越来越多的人乐意享受网上便捷的服务,诸如网上购物、网上订票等。其中突出的一类服务是信息内容下载服务,包括音乐、参考资料、试用软件的下载等。通常,信息内容下载服务有以下要求:
● 能够下载的用户必须有访问信息内容的权限;
● 每一项信息内容要有独立的下载权限控制,能下载某一项信息的用户,不一定能够下载另一项信息;
● 从用户的角度来说,下载时文件名应该保持为下载信息内容的实际名称。
实际上,若采用通常的开发方法,上述三点较难同时满足:通过脚本(如ASP)进行权限控制,可能会使下载文件名变成了脚本名;若想保留下载文件名,可能权限无法控制。本文将从HTTP协议、Web服务器出发,结合目前比较流行的Web开发方法(Java、ASP)来说明如何实现上述要求。
问题的解决
有多种方法可以解决这个问题,下面介绍其中的两种:
第一种方法 直接虚拟路径法
直接虚拟路径法是指在下载URL中直接给出文件名,并在文件名前设置虚拟路径名(必须保证通过该路径是访问不到文件的)。这样,浏览器显示的下载名是原文件名,而非法用户因路径不存在,无法得到文件。
这种方法主要利用Web服务器的映射(MAP)功能,实现思路是: