thinkphp5,有权限才能下载文件
taotaoit ThinkPHP5.1 2024-01-15 314 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

6498066 2616 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

thinkphp5,有权限才能下载文件

需求:留言之后才能下载文件,否则不能下载

实现:留言后,记录ip地址,下载前先检查ip地址是否存在,

代码:

1,模板代码

{notempty name='$details.serviceFile'}
                <a class="xiazai" href="javascript:download({$details.serviceId})">资料下载</a>
                {/notempty}
2,js代码

<script>
function download(id){
  $.post(ZHT.U('home/service/checkDownload'),{},function(data,textStatus){
    json = ZHT.toJson(data);
    if(json.status=='1'){
      location.href = ZHT.U('home/service/download','id=' + id);
    }else{
      ZHT.msg('请先申请样品,然后下载资料',{icon:0});
    }
  });
}
</script>
3,控制器代码

/**
   * 下载-检查是否有下载权限
   */
  public function checkDownload() {    
    $rs = model('feedback')->checkDownload();
    return $rs;
  }
  /**
   * 下载
   */
  public function download() {
    $rs = model('feedback')->checkDownload();
    if($rs['status'] == 1){
      $id = input('id',0);
      $m = new M();
      $file = $m->getByFile($id);
      $file_url = $_SERVER['DOCUMENT_ROOT'] . '/' . $file;
      // 和上面的下载文件名是一样的效果
      return download($file_url, time());
    }    
  }
4,检查权限

/**
	 * 检查权限
	 */
	public function checkDownload(){
		$ip = request()->ip();
		$rs = $this->where([['dataFlag','=',1],['feedbackIp','=',$ip],['feedbackType','=',2]])->find();
		if(!empty($rs)){
			return ZHTReturn('',1); // 留过电话,可以下载
		}else{
			return ZHTReturn('',-1); // 没有留过电话,提醒先留电话
		}
	}
5,获取下载文件

/**
	 * 获取指定id下载文件
	 */
	public function getByFile($id){
		$serviceFile = $this->where(['serviceId'=>$id])->value('serviceFile');
		return $serviceFile;
	}

版权声明:本站原创文章,允许自由转载。

相关推荐
Non-static method think\Config::get() should not be called statically
ThinkPHP5.1 | 2018-12-29 10455
原来是这样use think\Config; 改成这样use think\facade\Config; 下面是官方手册的解释 配置获取 要使用Config类,首先需要在你的类文件中引入 use think\facade\Config; 或者(因为系统做了类库别名,其实就是调用think\facade\Config) u...
thinkPHP5 order多条件排序
ThinkPHP5.1 | 2017-10-24 10306
总结如下: //单一条件排序 $user = $this->where(['parentId'=>0)->field('userId,userName,userSort,isShow')->order('userSort', 'asc')->select(); //多个条件排序,可以多加一个order...
评论:0条
评论加载中...
发表评论