下载的链接是一个php页面,在该页面中判断用户是否登录。如果登录,则返回一个链接。或者,从数据库或硬盘中读出文件,写到客户端。文档中心有一段文字,是谈关于下载的。作者是net_lover。你去找一下。=================一代过去,一代又来,地却永远长存。日头出来,日头落下,急归所出之地。
风往南刮,又往北转,不住的旋落,而且返回转行原道,江河都往海里转,海
却不满,江河从何处流,仍归何处。

解决方案 »

  1.   

    我当然知道用一个PHP页面来返回一个链接,问题是如果我把文件放到WEB目录下,有的人可以记下地址,私自下载,所以要把文件藏起来,我只想到把文件放到数据库中,除了放到数据中,还有什么好办法?
      

  2.   

    1、放在非http服务区域
    2、临时复制文件到下载目录,并改变文件名
    3、用文件函数读入和输出文件内容
      

  3.   

    放在非http服务区是比较好的方法。其实放在数据库,只是你操作的时候方便些而已,并不能说,放到数据库里的速度就快。
      

  4.   

    1、被下载的文件保存为文件比保存在数据库中要好,因为文件一般较大且利用率不高
    2、数据库也是文件,而且是以某中规则组装成的文件。所以对数据库的操作要比对文件操作要慢,但方便的多。
    3、以数据流方式提供下载时,用文件的要比用数据库的略快。
       以复制临时文件方式提供下载时,复制后已不需要php的干预了。效率肯定很高,但难点在于何时删除临时文件总之,各有利弊。个人倾向于文件方式。
      

  5.   

    我是指下载请求提交到cgi,cgi响应GET事件从非http区读取文件,按http协议返回供下载文件。至于下载后删除,对于可执行文件可由程序自杀,其它文件就不知了
      

  6.   

    如果是文件方式,放到一个临时的目录,是不是只要有用户请求了,就复制一次如果这样,
    1.要考虑文件名不能重复,
    2.如果有100个人同时下载,还要考虑大小的问题
    3.删除文件,用户session结束下载不一定结束,比较麻烦如果用这种试不知道行不行?把文件命名为(*.PHP),用户就下载不了,这样就没有文件重复,大小,删除的事情啦,各位大侠有何意见?不过我对读文件流然后再以二进制的方式让用户下载不太熟,有人愿意贴点,实现我的设想的代码吗?
      

  7.   

    有个施威写的 Anti Leech File Gate
    非常不错,看这里 http://www.phpcn.com/alfgate