先举个例子http://wenku.baidu.com/view/a4cee123de80d4d8d15a4fba.html
1.这是百度文库中的一个地址,我想知道a4cee123de80d4d8d15a4fba是得怎么出来的。
2.审查元素-下载按钮,<a class="ic reader-download" href="###" data-toolsbar-log="download" alog-action="htmltoolbar.download"></a></div>这段代码将下载链接隐藏了,是怎么做到的?
3.查看网页源代码,发现2中的那段代码也被隐藏了,怎么回事?
请大家给解释一下,谢谢!urlhtml

解决方案 »

  1.   

    1.或许人家就是存了一个这样的文件名的文件.或许服务器看到a4cee123de80d4d8d15a4fba后进行逆运算得出真实文件名,可能性很多
    2.下载链接不一定要指向下载的文件的地址,因为可以把它当做一个按钮,点击时触发js来进行下载操作.
    3.如果网页上对应位置是个空元素,页面载入时用js动态的添加内容 查看源代码就会发现是空的上边说的很可能不准确,因为百度具体用了什么样的技术我并不能保证,我只能说,我说的那些可以实现类似的效果.并且推测是用js实现的
    研究百度的做法不如研究下要实现什么样的效果需要怎么做来得快
      

  2.   

    最简单的方法:php生成下载链接的时候用base64encode一个filepath+time,下载链接类似与download.php?hash=xxxxxxxxxxxxxx,用户点击,你拿到hash之后ecode,如果time没有过期,header里给人家文件
    $file = "/tmp/dummy.tar.gz";
        header("Content-type: application/octet-stream");
        header('Content-Disposition: attachment; filename="' . basename($file) . '"');
        header("Content-Length: ". filesize($file));
        readfile($file);
    ------------------------------------------------------AutoCSDN签名档------------------------------------------------------