* Date: 2018-4-3 */ namespace app\home\model; use think\Db; use think\Model; /** * 下载文件 */ class DownloadFile extends Model { //初始化 protected function initialize() { // 需要调用`Model`的`initialize`方法 parent::initialize(); } /** * 获取指定下载文章的所有文件 * @author 小虎哥 by 2018-4-3 */ public function getDownFile($aids = [], $field = '*') { $where = []; !empty($aids) && $where['aid'] = ['IN', $aids]; $result = Db::name('DownloadFile')->field($field) ->where($where) ->order('sort_order asc') ->select(); if (!empty($result)) { $hidden = ''; $n = 1; $n2 = 1; foreach ($result as $key => $val) { $downurl = ROOT_DIR."/index.php?m=home&c=View&a=downfile&id={$val['file_id']}&uhash={$val['uhash']}"; $result[$key]['title'] = ''; if (!empty($val['extract_code'])) { $result[$key]['title'] = '提取码:'.$val['extract_code']; } if (is_http_url($val['file_url'])) { $result[$key]['server_name'] = !empty($val['file_name']) ? $val['file_name'] : "远程服务器({$n})"; $n++; } else { $result[$key]['server_name'] = "本地服务器({$n2})"; $n2++; } $result[$key]['softlinks'] = $downurl; $result[$key]['downurl'] = "javascript:ey_1563185380({$val['file_id']});"; $result[$key]['ey_1563185380'] = ""; $result[$key]['ey_1563185376'] = $this->handleDownJs($hidden); } $result = group_same_key($result, 'aid'); } return $result; } private function handleDownJs(&$hidden = '') { if (empty($hidden)) { $hidden = << function ey_1563185380(file_id) { var downurl = document.getElementById("ey_file_list_"+file_id).value + "&_ajax=1"; //创建异步对象 var ajaxObj = new XMLHttpRequest(); ajaxObj.open("get", downurl, true); ajaxObj.setRequestHeader("X-Requested-With","XMLHttpRequest"); ajaxObj.setRequestHeader("Content-type","application/x-www-form-urlencoded"); //发送请求 ajaxObj.send(); ajaxObj.onreadystatechange = function () { // 这步为判断服务器是否正确响应 if (ajaxObj.readyState == 4 && ajaxObj.status == 200) { var json = ajaxObj.responseText; var res = JSON.parse(json); if (0 == res.code) { alert(res.msg); }else{ window.location.href = res.url; } } }; }; EOF; } return $hidden; } }