头像存储规则,用户uid为:80629
对应头像地址:http://域名/uc_server/data/avatar/000/08/06/29_avatar_middle.jpg (中等尺寸) 然后再说附件图片:
如果显示真实附件地址的,如下:
- https://www.aoebbs.net/data/attachment/forum/201904/20/160627gepjoc7f1jxcfioc.jpg.thumb.jpg
复制代码
但是很多都是加密过的,如下:
- https://www.aoebbs.net/forum.php?mod=attachment&aid=MjE1MjR8YjNkMTdkNzJ8MTU2NzM4Nzg0NnwxfDI3Mjk=&noupdate=yes
复制代码
取aid后面加密部分 (我这个是假的字串,要测试你找你个真的加密字串) MjE1MjR8YjNkMTdkNzJ8MTY2NzM4Nzg0NnwyfDI3Mjk
BASE64解密得到 21524|b3d17d72|1667387846|2|2729 注意:1667387846是Unix时间戳 注意:21524 真正的aid, b3d17d72 这个 key? 2 是用户UID 2729 是 thread ID =tid
可以理解为\source\function\function_core.php
function aidencode($aid, $type = 0, $tid = 0) { global $_G; $s = !$type ? $aid.'|'.substr(md5($aid.md5($_G['config']['security']['authkey']).TIMESTAMP.$_G['uid']), 0, 8).'|'.TIMESTAMP.'|'.$_G['uid'].'|'.$tid : $aid.'|'.md5($aid.md5($_G['config']['security']['authkey']).TIMESTAMP).'|'.TIMESTAMP; return rawurlencode(base64_encode($s));
} 复制代码
aid参数就是把该附件的aid、安全码、时间、UID、主题ID等信息字符串拼接之后使用了base64加密而来,可参考: \source\module\forum\forum_attachment.php
@list($_GET['aid'], $_GET['k'], $_GET['t'], $_GET['uid'], $_GET['tableid']) = daddslashes(explode('|', base64_decode($_GET['aid'])));
就是 aid key? time uid tableid 有了真实的 aid 搜索 pre_forum_attachment (0-9) 9张表里面。 找到 aid=21524 这条数据 ,就有真实的附件存储地址: 202004/20/110953dwxxyigaigs5dxwn.jpg
那齐全的地址就是
- https://www.aoebbs.net/data/attachment/forum/201104/20/110953dwxxyigaigs5dxwn.jpg
复制代码
好了。到此。
附件 按上传时间存储在不同目录,规则如下
DISCUZ_ROOT.'data/attachment/forum/'.date('Ym',$dateline).'/'.date('d',$dateline).'/'.date('His',$dateline).strtolower(random(16)).'.拓展名';
|