DownloadFile.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /**
  3. * 易优CMS
  4. * ============================================================================
  5. * 版权所有 2016-2028 海南赞赞网络科技有限公司,并保留所有权利。
  6. * 网站地址: http://www.eyoucms.com
  7. * ----------------------------------------------------------------------------
  8. * 如果商业用途务必到官方购买正版授权, 以免引起不必要的法律纠纷.
  9. * ============================================================================
  10. * Author: 小虎哥 <1105415366@qq.com>
  11. * Date: 2018-4-3
  12. */
  13. namespace app\home\model;
  14. use think\Db;
  15. use think\Model;
  16. /**
  17. * 下载文件
  18. */
  19. class DownloadFile extends Model
  20. {
  21. //初始化
  22. protected function initialize()
  23. {
  24. // 需要调用`Model`的`initialize`方法
  25. parent::initialize();
  26. }
  27. /**
  28. * 获取指定下载文章的所有文件
  29. * @author 小虎哥 by 2018-4-3
  30. */
  31. public function getDownFile($aids = [], $field = '*')
  32. {
  33. $where = [];
  34. !empty($aids) && $where['aid'] = ['IN', $aids];
  35. $result = Db::name('DownloadFile')->field($field)
  36. ->where($where)
  37. ->order('sort_order asc')
  38. ->select();
  39. if (!empty($result)) {
  40. $hidden = '';
  41. $n = 1;
  42. $n2 = 1;
  43. foreach ($result as $key => $val) {
  44. $downurl = ROOT_DIR."/index.php?m=home&c=View&a=downfile&id={$val['file_id']}&uhash={$val['uhash']}";
  45. $result[$key]['title'] = '';
  46. if (!empty($val['extract_code'])) {
  47. $result[$key]['title'] = '提取码:'.$val['extract_code'];
  48. }
  49. if (is_http_url($val['file_url'])) {
  50. $result[$key]['server_name'] = !empty($val['file_name']) ? $val['file_name'] : "远程服务器({$n})";
  51. $n++;
  52. } else {
  53. $result[$key]['server_name'] = "本地服务器({$n2})";
  54. $n2++;
  55. }
  56. $result[$key]['softlinks'] = $downurl;
  57. $result[$key]['downurl'] = "javascript:ey_1563185380({$val['file_id']});";
  58. $result[$key]['ey_1563185380'] = "<input type='hidden' id='ey_file_list_{$val['file_id']}' value='{$downurl}' />";
  59. $result[$key]['ey_1563185376'] = $this->handleDownJs($hidden);
  60. }
  61. $result = group_same_key($result, 'aid');
  62. }
  63. return $result;
  64. }
  65. private function handleDownJs(&$hidden = '')
  66. {
  67. if (empty($hidden)) {
  68. $hidden = <<<EOF
  69. <script type="text/javascript">
  70. function ey_1563185380(file_id) {
  71. var downurl = document.getElementById("ey_file_list_"+file_id).value + "&_ajax=1";
  72. //创建异步对象
  73. var ajaxObj = new XMLHttpRequest();
  74. ajaxObj.open("get", downurl, true);
  75. ajaxObj.setRequestHeader("X-Requested-With","XMLHttpRequest");
  76. ajaxObj.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  77. //发送请求
  78. ajaxObj.send();
  79. ajaxObj.onreadystatechange = function () {
  80. // 这步为判断服务器是否正确响应
  81. if (ajaxObj.readyState == 4 && ajaxObj.status == 200) {
  82. var json = ajaxObj.responseText;
  83. var res = JSON.parse(json);
  84. if (0 == res.code) {
  85. alert(res.msg);
  86. }else{
  87. window.location.href = res.url;
  88. }
  89. }
  90. };
  91. };
  92. </script>
  93. EOF;
  94. }
  95. return $hidden;
  96. }
  97. }