【即将关站通知●已关闭注册功能】,倒计时剩余:计算中...

[discuz建站技术] Discuz 高级教程 - 统一全站附件下载页

[复制链接]
魔趣吧站长魔趣吧官方成员 实名认证 发表于 2020-4-17 21:10:26 | 显示全部楼层 |阅读模式
  首先,我们要确定的一点是,当点击附件的下载连接时,跳转到一个统一的下载页面。那么前期的准备就需要有一个单独的下载页面和修改下载连接,让下载的连接先跳转到下载页面,再从下载页面的下载按钮连接附件的下载地址。: A, s  U% t& C0 T: r
# `+ O+ E; ~+ |! P$ `
第一步,先在根目录创建down.php.用 include template('');的方式,调取模板里的html文件。这样是为了方便去写下载页面的HTML结构和样式。当有了这个down的html页面,我们就可以在 discuzcode.htm 里先将主题内容页原本附件下载的地址,改为这个down.php的地址。
$ X- o* G/ b: a但是这里需要特别注明的几个点,因为我们在down.php中,仍然需要tid、aid这些值,否则无法获取到是从哪个帖子进入的下载页面,以及这个页面是否真的存在aid(aid是附件ID),所以地址栏的地址可以参考& ]0 _+ C8 m$ v) a
href="down.php?mod=attachment{$is_archive}&tid=$attach[tid]&aid=$aidencode"
1 ^, B5 M0 B4 `! \6 ]; y5 _4 h7 l
& ]# S! z/ A1 v* n  o& H  X: M" @7 q
接下来,我们回到down.php。因为我们是从主题内容页点击了上面的连接进入的down.php。所以我们在地址栏中,就获取到了当前主题内容页的tid和aid。那么接下来,我们先需要对这个tid的真实性进行判断。通过地址栏里的tid,我们再去查询forum_thread中是否真实存在这个tid。也就是
  1. if($_GET[tid]){
  2.                 $Down_Tid = DB::result_first("select tid from ".DB::table("forum_thread")." where tid=$_GET[tid]");
  3.         }
复制代码
这里加if的主要原因就是考虑到当我们通过href="down.php?mod=attachment{$is_archive}&tid=$attach[tid]&aid=$aidencode" 访问时,手动修改不存在的tid或者为空的值,系统会因为 where tid=$_GET[tid]" 找不到而报错。
2 H1 Q4 s& Z! b2 U至此,我们已经获得到了进入down.php的tid是真实存在的。那么接下来,我们就可以通过用这个tid,来对表forum_thread进行查询,比如调取主题标题等。# @* X! M# P% g5 s/ d* h$ r) D& d0 t
因为$Down_Tid 只是一个用来判断入口的tid是否存在的,并不能直接它来获取表forum_thread的信息,所以,我们还需要再用$Down_Tid再查询一次forum_thread。这个时候,条件里就可以用 where tid = $Down_Tid了,还要加一个 isimage= 0 ,这是为了防止获取到图片附件。当然,所有通过$Down_Tid 来查询的语句,外面也要给个if。否则当找不到这个tid的时候,依然会报错。, \" y( h" z* j, U- ]( R; A( v' [
既然已经有了这个刚查询出已经存在的tid。我们就可以先来查询aid,用刚才的tid再去查forum_attachment 和 forum_attachment_0到forum_attachment_9,我们就可以获取到附件的信息了。和上面的逻辑是一样,我们第一考虑的是确保都在if内,保证这个查询是真实存在的并且是有aid的。" T+ Y2 @( \- z/ r4 s1 ?! A
再然后我们可以随便定义一个变量,来获取从主题内容页进入的地址栏里的aid。比如
8 [( ~9 P* L. A! ~

0 o' T: q: N9 v7 Y$ v- o
  1. $aidencode = $_GET['aid'];
复制代码
这样,我们就获得到了一个完整的附件下载地址。
" D" u$ T1 ~4 M2 F- G; g( s) j  N
6 C+ r0 u" \' {6 z: P7 j: R2 D最后,我们再把discuzcode.htm里 默认的附件下载地址放进来,就可以通过正确的aid获取到附件的下载地址了。+ S1 L* f3 w4 P

; \  o% x7 U% F6 e
( l6 [6 f' s, }( Q- \2 J& C% v

魔趣吧版权声明1,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2,本文内容仅代表作者本人观点,不代表本网站立场,作者文责自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3,本文内容,包括但不限于源码、文字、图片等,仅供参考使用,本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容
4,如您认为本文内容侵犯了您的权益,请与我们联系!我们将在5个工作日内做出处理!本站保留全部修改、解释、更新本声明的权利魔趣吧

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线支持
关闭
欢迎来到魔趣吧
如果你有建站技术问题、仿站需求、模板插件修改需求,请联系我们的技术支持!高效率,低价格的帮你搞定!
请认准魔趣吧唯一官网:www.moqu8.com,谨防假冒网站!

一般问题请到【求助区】发帖咨询(免费)!

邮箱咨询:
winkill2012@qq.com

邮箱咨询需注明:资源地址+本站用户名+具体问题,三者缺一不做处理。非本站资源不处理!
在线支持
快速回复 返回列表

关于魔趣吧|魔趣建站

魔趣吧,志在打造全国最大的建站资源共享平台。 本站提供海量免费的建站资源,包括WordPress模板、Discuz精仿模板、PHPWind模板、phpcms模板、Discuz精仿插件、帝国cms模板、织梦模板等上万精品模板!同时,提供各种建站素材、JS特效、整站程序源码!
服务中文站长,传播分享精神!建站,就来魔趣吧!!
2015-2024 魔趣吧 ( 豫ICP备2021024354号 )   豫公网安备41030402000182号 百度统计
HTTPS安全认证
|网站地图 | 已运行:天 
温馨提示:本站所有资源、教程、源码,不得用于非法站点及用途,否则,本站将终止提供任何服务! Powered by Discuz! Licensed